`.
Original-voice attribution is `provenance.attributedTo`; extraction attribution is `provenance.extractedBy`. Both are optional. In the example, `recordedAt` records when the teaching entry was made, not when Observer A originally spoke or when the event occurred. Do not invent a page or time locator for a plain-text source that has no such coordinate.
A topic is free text. To connect a review to an exact observable or origin definition, follow [Use observable terms](/v2/docs/observables#connecting-a-term-to-a-claim). The shared vocabulary connection is included in Beta 4. The term never replaces the subject or the supporting inputs.
3. Inspect failures and a valid branch [#3-inspect-failures-and-a-valid-branch]
Each flag changes only an in-memory copy. The file stays unchanged. A failed check exits with status 1 and omits `currentClaimRefs`; unsupported arguments exit with status 2. Run without a flag to return to the original passing history.
Refer to a missing input [#refer-to-a-missing-input]
```sh
node check-claims.mjs history.json \
--missing-input
```
The revised claim refers to `claim:missing`. Structure still passes, but semantics fail with `REF.LOCAL_RESOLUTION` at `/claims/4/inputRefs/0`. Do not fill the gap by dropping the reference or silently choosing a different source.
Replace another reviewer's assessment [#replace-another-reviewers-assessment]
```sh
node check-claims.mjs history.json \
--change-reviewer
```
Changing the revised claim's evaluator to B while retaining its link to A's assessed predecessor fails with `CLAIM.REVISION_ATTRIBUTION` at `/claims/4/supersedes/0`. B needs a separate assessment, as the `independent` claim already demonstrates. Matching evaluator labels satisfy a local rule; they do not authenticate an identity.
Keep two revisions of the same predecessor [#keep-two-revisions-of-the-same-predecessor]
```sh
node check-claims.mjs history.json \
--branch
```
This is valid. The checker adds `parallel-revision`, another assessment by A that supersedes `initial`. Both `revised` and `parallel-revision` remain current, along with the source statements and B's separate review. The parser does not select the last array entry or average outcomes. A later explicit revision can supersede both branches if it satisfies the same scope, attribution and timing rules.
Revisions and disagreement [#revisions-and-disagreement]
A revision must preserve claim kind, topic and subject. An assessed predecessor can be replaced only by another assessed claim with the same evaluator label. Moving from `unassessed` to `assessed` is allowed; moving from an assessed conclusion back to `unassessed` is not a valid supersession.
Revision times cannot precede their predecessors, and an evaluation time cannot follow its own recording time. Claim-input and supersession references form one acyclic dependency graph. Array order does not establish priority.
Changing a subject or its exact snapshot creates a different review. Keep a separate claim rather than making a revision appear to assess the same thing. Two reviews that cite the same accounts are not two independent observations. Shared inputs remain visible; the parser does not compute a vote or aggregate score. A parser sees the submitted document; your storage layer must prevent a later submission from silently removing earlier history.
Outcomes and confidence [#outcomes-and-confidence]
An assessed claim declares one of four outcomes: `reported`, `confirmed`, `absent` or `inconclusive`. The outcome applies to the stated question, subject, method and inputs. `confirmed` is not a document-wide badge or a finding automatically assigned by the standard. `inconclusive` does not mean `absent`.
| Outcome | What the reviewer declares |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| `reported` | The claim was made, without confirming it. |
| `confirmed` | The claim is supported by the material examined. This remains the reviewer's conclusion. |
| `absent` | The claimed feature is absent from the material examined. Missing information or a check never performed cannot establish this. |
| `inconclusive` | The material was assessed, but the question remains unresolved. |
`confidence` is an optional evaluator-declared number between 0 and 1. The example omits it. Do not fill omission with zero, interpret it as a calibrated probability without a stated basis, or average values across reviewers with different methods. Observable support levels and provider scores have their own meanings; see [Observables](/v2/docs/observables#observable-levels-and-claim-outcomes) and [Scoring and checks](/v2/docs/assessment).
What validation establishes [#what-validation-establishes]
| Check | This parser's scope |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------ |
| `structural` | Required fields, allowed alternatives, values and nested observation structure. |
| `semantic` | Local IDs and references, method-version matching, timing, supersession scope and attribution, and acyclic claim dependencies. |
| `profile` | `not_checked`. No source-file or research profile runs here. |
| `external` | `not_checked`. No outside URLs are fetched and no identities are authenticated. |
The parser does not read source bytes, verify that an excerpt matches its source, execute a method or establish scientific validity. It can compare digest declarations when both are supplied; that is not byte verification. An assessment can structurally allow an empty input list, so parser success alone is not research eligibility.
Check `success`, `checks`, `issues` and `uncheckedRefs` together. Structural failure leaves semantics unchecked. Semantic failure has diagnostic codes and JSON Pointers; an issue inside the embedded observation retains its `/observation` prefix. Use the appropriate [profile checks](/v2/docs/assessment) or supplied-document evaluator for additional scope, and retain what those checks leave unresolved.
Review subjects [#review-subjects]
Choose a contract for the subject being reviewed. Later document versions add specific subject families; they are not a reason to relabel a base history's `schemaVersion`. Each needs its matching parser and dependencies.
| Subject | Contract and availability | Guide and reference |
| ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| Observation or named measurement | Claim history `0.1.0`, published Beta 4. `parseExperimentalClaimHistory`. | [Base fields](/v2/docs/reference/claims) |
| Context entity or field | Claim history `0.2.0`, published Beta 4. `parseContextClaimHistory` and `evaluateContextClaimHistory`. | [Event and setting](/v2/docs/context) · [Review fields](/v2/docs/reference/context#context-claims) |
| Witness, account, procedure or group | Claim history `0.3.0`, published Beta 4. `parseResearchClaimHistory` and `evaluateResearchClaimHistory`. | [Witnesses and accounts](/v2/docs/testimony) · [Review fields](/v2/docs/reference/testimony#research-claims) |
| Document edition, artifact or custody declaration | Claim history `0.4.0`, published Beta 4. `parseArchivalClaimHistory` and `evaluateArchivalClaimHistory`. | [Documents and custody](/v2/docs/documents) · [Review fields](/v2/docs/reference/documents#archival-claims) |
| Specimen, preparation, laboratory analysis or result | Claim history `0.5.0` with research entities `0.4.0`, published Beta 4. `parseLaboratoryClaimHistory` and `evaluateLaboratoryClaimHistory`. | [Materials and laboratory](/v2/docs/physical-samples) · [Review fields](/v2/docs/reference/materials#material-claims) |
| Case, case entity or directed relationship | Separate case-claim-history `0.1.0`, published Beta 4. `parseCaseClaimHistory` and `evaluateCaseClaimHistory`. | [Precise-subject example](/v2/docs/showcase#precise-subject-reviews) |
All rows above are available in `2.0.0-beta.4`. Parsers are exported by `@disclosureos/records/experimental/v2`; supplied-document evaluators are exported by `@disclosureos/schema/experimental/v2`. Follow the linked guide for each subject's required documents and checks.
Context subjects [#context-subjects]
A context review identifies the exact context snapshot, entity and optional field. Specific assertion references identify its supporting declarations. Follow [Event and setting](/v2/docs/context#add-an-attributed-review) for the supplied-document checks.
Reviews of witnesses and accounts [#reviews-of-witnesses-and-accounts]
A `witnessReview` preserves factors, rationale and uncertainty as the evaluator's declarations. It does not generate an automatic credibility score. The [witness guide](/v2/docs/testimony#review-an-exact-declaration) keeps source-reported procedures distinct from a reviewer's assessment.
Reviews of document editions [#reviews-of-document-editions]
Edition citations retain the exact entity snapshot, edition, artifact and locator. Source-reported reviews remain separate from evaluations by a named reviewer. Follow [Documents and custody](/v2/docs/documents#cite-and-review-the-exact-copy) for a runnable example.
Download and inspect the example [#download-and-inspect-the-example]
The downloadable history and checker above are the complete base example. Open [the history JSON](/examples/v2/claims/history.json) to inspect all six entries, or [the checker](/examples/v2/claims/check-claims.mjs) to reuse its result handling. The [browser inspector](/v2/inspect) also accepts observation and claim-history JSON.
Field reference [#field-reference]
Use the [searchable base claim-history reference](/v2/docs/reference/claims) to choose a claim shape, inspect required fields and follow exact nested paths. It includes every branch of the `0.1.0` schema; subject-specific additions stay in the references listed above. The schema export is `@disclosureos/records/experimental/v2/claims/schema`, with identifier `urn:disclosureos:experimental:claim-history:0.1.0`.
[Compare the showcase's retained reviews](/showcase?surface=desk\&deskGroup=reviews\&view=assessments\&assessmentMode=compare) to see source changes, revisions and independent reviewers in the complete example. Continue to [Origins](/v2/docs/origins) to describe an explanation without confusing it with an observed characteristic.
# Event and setting (/v2/docs/context)
An observation holds the source inventory and measured values. An **event and setting document** adds descriptions of what happened, where it happened and the surrounding conditions. Its technical name is `observation_context`. It points to one exact observation snapshot instead of copying the source inventory into a second record.
This guide continues [Observation records](/v2/docs/records). You will add the fictional location named in the same station log, connect the session to it, and test a broken place reference. You will then check those links against the saved observation bytes.
**Requirements:** Node.js 22 and the `source-observation.json` produced by the Observation guide. Run its script successfully before continuing. Install the published packages in that same project:
```sh
npm install --save-exact @disclosureos/records@2.0.0-beta.4 @disclosureos/schema@2.0.0-beta.4
```
The context document version is `0.1.0`. It identifies the document format and is separate from the npm package version.
1. Decide what belongs in context [#1-decide-what-belongs-in-context]
The [example station log](/examples/meridian/station-log.txt) says:
> Meridian Basin is a fictional location.
The observation already holds the session time and identifies the log as `station-log`. We will add a **place** named Meridian Basin and an **event** that links the session to that place. We will not add coordinates: the log does not supply them.
An **entity** is one described event, object, place, platform, environment, time context or collection. Each entity has an ID and fields. A field holds a list of source-attributed assertions so different descriptions can coexist.
| Layer | In this example |
| -------------------------- | ---------------------------------------------------------------------------------------- |
| Observation | The session time and the `station-log` source entry. |
| Context document | An exact reference to that observation, plus the event and place entities. |
| Field assertion | The reported place name, with the source and the person or document it is attributed to. |
| Claim history, when needed | A separate review of a description, with its reviewer, method and outcome. |
The context assertion records what the source supplies. It does not decide whether a reported characteristic is anomalous or which explanation is correct.
2. Build and save the context [#2-build-and-save-the-context]
Save this as `setting.mjs` beside `source-observation.json`. It reads and hashes the saved file's exact bytes, checks the observation, then creates the two context entities.
```js title="setting.mjs"
import { readFileSync, writeFileSync } from "node:fs";
import { createHash } from "node:crypto";
import {
parseExperimentalObservation,
parseObservationContext,
} from "@disclosureos/records/experimental/v2";
const observationBytes = readFileSync("source-observation.json");
const observation = JSON.parse(observationBytes.toString("utf8"));
const checked = parseExperimentalObservation(observation);
if (!checked.success)
throw new Error("Fix the observation before adding context.");
const sourced = (id, value) => [
{
id,
content: {
state: "known",
value,
provenance: {
sourceRef: "source:station-log",
attributedTo: "Synthetic field session log",
},
},
},
];
const context = {
kind: "observation_context",
schemaVersion: "0.1.0",
id: "docs-field-setting",
observationRef: {
documentId: observation.id,
schemaId: "urn:disclosureos:experimental:observation:0.1.0",
sha256: createHash("sha256").update(observationBytes).digest("hex"),
},
recordedAt: "2026-10-16T00:00:00Z",
recordedBy: "DisclosureOS documentation example",
entities: [
{
kind: "event",
id: "session",
fields: { placeIds: sourced("site", ["basin"]) },
},
{
kind: "place",
id: "basin",
fields: { name: sourced("name", "Meridian Basin") },
},
],
};
const result = parseObservationContext(context);
console.log(
JSON.stringify({ success: result.success, checks: result.checks }, null, 2),
);
if (!result.success) {
console.error(JSON.stringify(result.issues, null, 2));
process.exitCode = 1;
} else {
writeFileSync(
"source-context.json",
JSON.stringify(result.data, null, 2) + "\n",
);
console.log("Saved source-context.json");
}
```
Run it:
```sh
node setting.mjs
```
The result is followed by `Saved source-context.json`:
```json
{
"success": true,
"checks": {
"structural": "passed",
"semantic": "passed",
"profile": "not_checked",
"external": "not_checked"
}
}
```
The parser checks the document shape and local relationships, including that `placeIds` resolves to a place entity. It has not opened the referenced observation or station log. The snapshot and source references remain in `result.uncheckedRefs`; we check the observation connection in step 4.
Notice the different identities:
* `observationRef` identifies the observation by document ID, schema ID and SHA-256 of the exact saved bytes. Reformatting the JSON changes that digest.
* `session` and `basin` are entity IDs inside this context document. `placeIds` uses the bare place ID, not `source:basin`.
* `site` and `name` identify individual assertions. Assertion IDs must be unique across the fields of their entity.
* `source:station-log` refers to the source inventory in the referenced observation. It is not a URL.
`known` means that a value is supplied, not independently verified. `recordedAt` dates the context document; it is not the event time. We omit `acquisitionRef` because this example does not refer to instrument captures.
3. Try a broken place reference [#3-try-a-broken-place-reference]
Change `sourced("site", ["basin"])` to `sourced("site", ["missing-place"])`, leaving the place entity unchanged. Run `node setting.mjs` again.
The structure still passes, but `success` becomes `false` and `semantic` becomes `failed`. The script exits with status 1 and prints:
```json
[
{
"code": "REF.LOCAL_RESOLUTION",
"stage": "semantic",
"pointer": "/entities/0/fields/placeIds",
"message": "Place reference does not resolve."
}
]
```
The pointer identifies the field containing the broken link. A failed run does not overwrite an existing `source-context.json`; use the exit status to decide whether the current run succeeded. Restore `basin` and rerun before continuing.
4. Check the observation connection [#4-check-the-observation-connection]
The published cross-document checker accepts a context-aware claim history. We can use an **empty claim list** to check the context and observation snapshots without inventing an assessment. Later, the same history can hold attributed claims about these descriptions.
Save this as `check-setting.mjs`. The map contains the original file bytes, keyed by their SHA-256. The checker fetches nothing.
```js title="check-setting.mjs"
import { readFileSync } from "node:fs";
import { createHash } from "node:crypto";
import { evaluateContextClaimHistory } from "@disclosureos/schema/experimental/v2";
const observationBytes = readFileSync("source-observation.json");
const contextBytes = readFileSync("source-context.json");
const observation = JSON.parse(observationBytes.toString("utf8"));
const context = JSON.parse(contextBytes.toString("utf8"));
const digest = (bytes) => createHash("sha256").update(bytes).digest("hex");
const history = {
kind: "claim_history",
schemaVersion: "0.2.0",
id: "docs-setting-check",
observation,
contextRefs: [
{
documentId: context.id,
schemaId: "urn:disclosureos:experimental:observation-context:0.1.0",
sha256: digest(contextBytes),
},
],
claims: [],
};
const documents = new Map([
[digest(observationBytes), observationBytes],
[digest(contextBytes), contextBytes],
]);
const result = await evaluateContextClaimHistory(history, { documents });
console.log(
JSON.stringify({ success: result.success, checks: result.checks }, null, 2),
);
if (!result.success) {
console.error(JSON.stringify(result.issues, null, 2));
process.exitCode = 1;
}
```
Run `node check-setting.mjs`. You should see:
```json
{
"success": true,
"checks": {
"structural": "passed",
"semantic": "passed",
"profile": "not_checked",
"external": "passed"
}
}
```
Here, `external: "passed"` means the required context and observation snapshots were supplied and their connections checked. The checker verifies their digests, identities and declared contracts, then resolves the source references against the observation. It does not open the station log or certify its wording, authenticity or scientific meaning. Profile checks, source-artifact integrity, temporal normalization and sensor fusion remain `not_checked`.
If you change the observation file afterward, regenerate the context reference from the new bytes and rerun the checks. Missing or altered snapshots cannot pass against the old reference. Do not reuse an earlier successful result for changed input.
Choose an entity type [#choose-an-entity-type]
Use only the entities your material needs. The seven types are alternatives within the `entities` list, not seven required sections.
| Type | Use it for |
| ------------------- | --------------------------------------------------------------------------------------------------------------------- |
| **Event** | Event descriptions and connections to places and time. |
| **Reported object** | Reported shape, appearance, maneuvers, sound and contacts. This is a description, not an established object identity. |
| **Place** | Location names, positions, terrain, airspace and proximity. |
| **Platform** | Observer, station, aircraft or vessel context. |
| **Environment** | Weather, visibility, celestial conditions and links to ambient measurements. |
| **Temporal** | Calendar periods, ranges, relative dates and local clock declarations. |
| **Collection** | Capture references, retention and declared alignment or correlation. |
The [field reference](/v2/docs/reference/context) has direct entrances to each type, nested search and a separate document choice for context-aware claims.
Preserve uncertainty and disagreement [#preserve-uncertainty-and-disagreement]
Fields hold assertion lists, so competing descriptions remain separate. `approximate` preserves a qualified value; `unknown` and `redacted` retain a reason; `unmapped` retains source wording that has not been mapped to a supported value. An absent field means it was not supplied. Zero and false are actual values, not substitutes for missing information.
An optional `selections` entry records which assertion a reviewer selected, the alternatives considered, method, time and rationale. It points to an assertion; it does not create another value or prove that account correct. Keep those selections distinct from claims that assess a description.
Calendar quarters and ranges must not become invented instants. Relative temporal anchors must resolve locally without cycles. A declared timezone does not automatically normalize a date or settle a daylight-saving ambiguity.
Connect measurements and captures [#connect-measurements-and-captures]
Keep quantities, units and uncertainty in the observation's measurements. An entity can link to a measurement ID through a defined role. For example, `ambient_temperature` belongs to an environment entity and accepts the documented temperature quantities and units. The checker does not guess quantities or convert units.
Add an exact `acquisitionRef` when collection descriptions cite acquisition IDs, and supply those acquisition bytes to the checker. Sharing a collection does not establish that channels are synchronized or have a common cause. Instrument capture and measurement links are covered in [Bindings](/v2/docs/bindings).
Add an attributed review [#add-an-attributed-review]
Use a context-aware claim history (`0.2.0`) when a reviewer assesses an entity or field. Its `contextRefs` declare the exact snapshots in scope. A context subject identifies that snapshot and a target `{ kind, id, field? }`; supporting `contextInputRefs` can identify particular assertions by entity, field and assertion ID.
Use `parseContextClaimHistory` for the local parse and `evaluateContextClaimHistory` with the exact bytes for cross-document checks. `parseExperimentalClaimHistory` and the default claims schema export still describe the `0.1.0` history. Profile support is explicit; a profile accepting `0.1.0` does not automatically accept `0.2.0`.
A changed context snapshot is a different subject. A review may cite a prior claim, but cannot supersede it as if it examined the same snapshot. A current claim is one that has not been superseded; it is not necessarily accepted or confirmed. Continue with [Claims](/v2/docs/claims) for the review model.
For a larger runnable exercise, [download the context review example](/examples/v2/context.zip), extract it and run:
```sh
cd context
npm install --ignore-scripts
npm start
```
The download and walkthrough both use the published `2.0.0-beta.4` packages. This separate synthetic control demonstrates conflicting triangle/oval descriptions, an ambient measurement and independent optical/radio captures. It uses its own source files and timestamps, not the station-log snapshot built above. The runner supplies exact local snapshot bytes; a passing result does not establish a common source for the captures. None of these examples is ELDÆON data.
Continue exploring [#continue-exploring]
* [Event and setting fields](/v2/docs/reference/context): search the complete context and context-aware claim structures, including exact schema exports.
* [Places and history in the showcase](/showcase?surface=desk\&deskGroup=setting\&view=overview\&overviewMode=site): inspect the full fictional case's positions and chronology. This guide retains only its station-log location name.
* [Witnesses and accounts](/v2/docs/testimony): add detailed accounts and the circumstances in which they were recorded.
The schema exports are `@disclosureos/records/experimental/v2/context/schema/0.1.0` and `@disclosureos/records/experimental/v2/claims/schema/0.2.0`. Their URNs identify contracts; they are not downloadable HTTP endpoints.
# Prepare a dataset contribution (/v2/docs/datasets)
Start with one representative capture and its supporting files. You do not need a complete archive, an anomaly assessment or every metadata field to begin. Keep missing information explicit so the next person knows what still needs to be established.
This guide creates a **source intake receipt**: a local inventory of received files, their fingerprints and the information still needed to use them. It does not upload files or publish a dataset.
You need **Node.js 22 and npm** for the exercise. It uses the published CLI **2.0.0-beta.4** and the existing fictional DisclosureOS example case. No source checkout is required.
Receive one file [#receive-one-file]
Create a working folder and install the CLI:
```sh
mkdir dataset-contribution
cd dataset-contribution
npm init -y
npm install --save-dev @disclosureos/cli@2.0.0-beta.4
```
[Download the example optical readings](/examples/meridian/optical.csv) and save the file as `optical.csv` in this folder. Keep the downloaded bytes unchanged; opening and saving the CSV in a spreadsheet can change them. These are fictional readings, not partner data.
Receive the file, then check the saved receipt and its copy:
```sh
npx disclosureos intake create optical.csv --out intake-01 --json
npx disclosureos intake validate intake-01/intake.json --json
```
The CLI leaves `optical.csv` intact and creates:
```text
dataset-contribution/
optical.csv Original downloaded file
intake-01/
intake.json Receipt and missing context
files/
file-1 Exact copy of optical.csv
```
The receipt retains `originalName: "optical.csv"`, its SHA-256 fingerprint and its byte length. File IDs belong to this receipt; `file-1` in another receipt can identify a different file. The receipt's ID and `receivedAt` value change each time. **Receipt time is not capture time.**
To receive several files, list each local path before `--out`. The output directory must not already exist. To repeat the exercise, choose a new name such as `intake-02`. The CLI does not overwrite an existing receipt.
Read the check result [#read-the-check-result]
The validation command exits with status **0**. Its JSON includes these fields; this is a shortened view of the result:
```json title="Intake validation · selected fields"
{
"success": true,
"researchEligibility": "not_checked",
"validation": {
"success": true,
"files": [{ "id": "file-1", "status": "passed" }],
"artifactContents": "not_checked",
"authorization": "not_checked"
}
}
```
`validation.files` confirms that the saved copy matches the receipt's length and fingerprint. It does not establish that the measurements are correct, the named source is authentic or publication is permitted.
The result also lists **nine gaps**: publisher, license, access, file role, format, instrument, calibration, clock and acquisition time. These are expected. Intake does not decode the CSV, infer its format from the extension or read timestamps into the receipt. Even information available in the example case stays unknown until it is supplied explicitly.
Each entry in `validation.gaps` gives a location, reason and next action. Missing context can coexist with a passing file-identity check. Use those gaps as a handoff checklist, not as permission to invent values.
Try a changed copy, then recover
From `dataset-contribution`, add a newline to the receipt's copy. Leave the original download unchanged.
```sh
node -e "require('node:fs').appendFileSync('intake-01/files/file-1', '\n')"
npx disclosureos intake validate intake-01/intake.json --json
```
Validation now exits with status **1**, returns `success: false` and reports `INTAKE.SIZE` at `/artifacts/0`. The file grew from **861 to 862 bytes**. Even a harmless-looking newline breaks the exact file match.
Restore the copy from the unchanged original, then validate again:
```sh
node -e "require('node:fs').copyFileSync('optical.csv', 'intake-01/files/file-1')"
npx disclosureos intake validate intake-01/intake.json --json
```
The result passes again. For a real changed source, retain it as a new artifact and preserve its relationship to the original. Do not replace a receipt's expected fingerprint just to clear a failure.
`npx disclosureos intake inspect intake-01/intake.json --json` reads the receipt without opening its source files. Its `fileIdentity: "not_checked"` is intentional. Use `npx disclosureos intake validate` with the receipt path when you need a file check. CLI exit status **2** means a usage or file-operation error; inspect the returned issues before retrying.
Choose a useful first slice [#choose-a-useful-first-slice]
For your own data, select a capture whose format and collection context someone can explain. Include background or known-control periods when available, alongside any interval the provider has identified for investigation. State how the slice was chosen and what was left out.
Keep native files alongside exports and derived products. A convenient JSON export may combine readings, calculated values and provider interpretations; it is not automatically raw data. Preserve separate device identities, clocks and sessions even when files appear together in one folder.
The intake CLI accepts local regular files, with a maximum of **4,096 files**, **256 MiB of combined source bytes** and an **8 MiB receipt**. It does not import an entire archive, fetch URLs or decode proprietary formats. For a larger archive, agree on a bounded first exchange and retain an inventory of the remainder. Do not truncate files silently to fit the limit.
What to provide [#what-to-provide]
Send supporting notes with the files. An explicit “unknown” with a reason is more useful than a guessed value or an empty cell.
| Include | Explain |
| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| File inventory | Original names, receipt IDs, formats, lengths and hashes. Identify native files, exports, derived products and documentation separately. |
| Equipment and configuration | Stable device/channel identifiers, sensor settings, firmware or software versions, and when each configuration applied. |
| Time and place | Timestamp epoch and time scale, what each timestamp marks, clock synchronization and uncertainty. Include coordinate systems, station geometry and any reduced location precision. |
| Measurement meaning | Units, axes, reference levels, integration windows, calibration reports and uncertainty. State what is absent or unreviewed. |
| Processing and selection | Which inputs produced each output, method/configuration versions, background/control labels, gaps and the reason this slice was selected. |
| Sharing terms | Who supplied the files, permitted uses, attribution, restrictions and any deidentification. Permission for a public export does not establish permission for its native archive. |
Receipt declarations are deliberately small. Keep detailed configuration, calibration and processing documents as additional source files, then connect them through the relevant standard documents during integration. Preserve the original receipt if you revise its declarations, and keep the original source bytes unchanged.
Prepare the handoff [#prepare-the-handoff]
Keep `intake.json` and its `files/` directory together. Add a short README that explains the exchange. This outline is a human-readable cover note, **not another required schema**:
```text title="Contribution README outline"
Provider and contact:
Purpose and selection of this slice:
Capture or session boundaries:
Files supplied and their roles:
Device/channel mapping:
Timing, units and reference frames:
Calibration and processing documents:
Known gaps and who can clarify them:
Permitted uses and required attribution:
Remaining archive and proposed next exchange:
```
Include the CLI version and saved validation result. The CLI reports the receipt's fingerprint as `manifestSha256`; keep it in a separately retained handoff record so a recipient can check that the manifest itself has not changed. File hashes inside a manifest do not authenticate that manifest or its publisher.
Coordinate the scope and transfer method with maintainers through the [project repository](https://github.com/disclosurefoundation/disclosureos). Start with a description of the proposed contribution. Agree on where files should go and their sharing terms before transferring them; do not attach restricted source data to a public issue. This portal does not provide an upload or publication service.
Connect the files to the standard [#connect-the-files-to-the-standard]
Intake is the starting point. Choose the next step according to what you can establish from the source:
| Stage | Purpose and next guide |
| ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Describe a record and capture | Create an [Observation record](/v2/docs/records), then connect [equipment and captures](/v2/docs/instruments). Intake notes alone are not validated acquisition context. |
| Connect a measurement | Retain its units, uncertainty and exact source selection. Follow [Connect measurements](/v2/docs/bindings) and [Check a measured value](/v2/docs/worked-example) for a complete example. |
| Add other source material | Use [Documents and custody](/v2/docs/documents), [Witnesses and accounts](/v2/docs/testimony) or [Materials and laboratory](/v2/docs/physical-samples) when those inputs are present. |
| Build a public view | Choose a [renderer](/v2/docs/showcase-support) after the source mapping is established. A working chart does not replace validation. |
**Reproduction packets and dataset releases are later, separate checks.** The published `packet` commands check pinned inputs and research prerequisites. The `dataset` commands check a release composed of those packets and their nominal session membership. This release profile requires qualifying packets; it is not the intake gate for unassessed files. Receive the source files first; add reviews when there is a documented assessment to record.
`inspect` reads a manifest; `validate` checks its supplied files and the applicable profile. `packet reproduce` supports only the CLI's bundled demonstration method, not arbitrary contributor code. None of these commands establishes scientific validity or permission to publish. See the [intake contract](https://github.com/disclosurefoundation/disclosureos/blob/fd2b451e694b4bcc383a25b362eeacaf94ac2fd3/packages/disclosureos-schema/src/experimental/v2/source-intake.ts), [packet reference](https://github.com/disclosurefoundation/disclosureos/blob/fd2b451e694b4bcc383a25b362eeacaf94ac2fd3/packages/disclosureos-schema/src/experimental/v2/reproduction-packet.ts) and [dataset release reference](https://github.com/disclosurefoundation/disclosureos/blob/fd2b451e694b4bcc383a25b362eeacaf94ac2fd3/packages/disclosureos-schema/src/experimental/v2/dataset-release.ts) at the published beta's source revision. The source links specify the contract fields and profile checks; the walkthrough above uses the installed CLI.
ELDÆON preview [#eldæon-preview]
[The public mission viewer](/datasets/eldaeon/july-2026) uses native files supplied by ELDÆON: environmental and muon logs, processed passive-radar exports, video and an EEG recording. The import is incomplete. Sensor windows retain file identifiers and source rows; videos and EEG use relative playback until their absolute clock alignment is established. The source library lists received and missing files, known defects and a source-intake receipt. The preview is not a scientific assessment or a canonical dataset release.
Further integration depends on confirmed device/channel meanings, clock alignment and calibration context. The received-file inventory and import checks do not fill those gaps. The fictional example used in this guide demonstrates the intake process separately from the real mission.
For a quick browser check of supported Observation or claim-history documents, use the [local inspector](/v2/inspect). It does not validate an intake receipt, import a native dataset or publish it.
For a bounded real-data implementation, [reproduce an ELDÆON reading](/v2/docs/eldaeon-reading). It connects one retained source row to the published standard and reports the missing capture context separately.
# Documents and custody (/v2/docs/documents)
Two copies can share a title and still have different pages, redactions or release histories. A document edition identifies the copy being described. A digital artifact identifies the file. Custody actions record how that file was handled; a review records what someone concludes about it.
This guide follows two fictional editions of the same memo. You will check their saved references, trace a page citation and deliberately point it beyond the end of one edition.
**Requirements:** Node.js 22 and the [archival example download](/examples/v2/archival-editions.zip). Extract it into its own folder. This exercise is self-contained and uses fictional declarations, not ELDÆON data. It includes JSON records about the memos, but not the original memo files.
1. Run the archival example [#1-run-the-archival-example]
Open a terminal in the extracted `archival-editions` folder and run:
```sh
npm install --ignore-scripts
npm start
```
The archive pins `@disclosureos/records` and `@disclosureos/schema` to `2.0.0-beta.4`. Its `source.json` identifies the source commit and retained file digests. The runner prints a full report. These are the fields to read first:
```json
{
"success": true,
"checks": {
"structural": "passed",
"semantic": "passed",
"profile": "not_checked",
"external": "passed"
},
"sourceArtifactIntegrity": "not_checked"
}
```
The supplied JSON snapshots and their connections pass. **The original memo files have not been checked.** A digest declared inside a record is different from a digest calculated from the source file's bytes.
| File | What it holds |
| ------------------ | ------------------------------------------------------------------------------------------------------------ |
| `observation.json` | The source inventory: two memo copies and the archive log cited by their metadata. |
| `entities.json` | Edition descriptions, file identities, release declarations, custody actions and a catalog identifier check. |
| `history.json` | A passage cited to edition A and a separate review comparing editions A and B. |
To call the validation APIs yourself, save this as `check-editions.mjs` in the extracted folder:
```js title="check-editions.mjs"
import { readFileSync } from "node:fs";
import { createHash } from "node:crypto";
import {
parseArchivalEntities,
parseArchivalClaimHistory,
} from "@disclosureos/records/experimental/v2";
import { evaluateArchivalClaimHistory } from "@disclosureos/schema/experimental/v2";
const read = (name) => readFileSync(name);
const entities = JSON.parse(read("entities.json").toString("utf8"));
const history = JSON.parse(read("history.json").toString("utf8"));
const local = [
parseArchivalEntities(entities),
parseArchivalClaimHistory(history),
];
if (local.some((result) => !result.success)) {
console.error(
JSON.stringify(
local.map((result) => result.issues),
null,
2,
),
);
process.exitCode = 1;
} else {
const documents = new Map(
["observation.json", "entities.json"].map((name) => {
const bytes = read(name);
return [createHash("sha256").update(bytes).digest("hex"), bytes];
}),
);
const result = await evaluateArchivalClaimHistory(history, { documents });
console.log(
JSON.stringify(
{
success: result.success,
checks: result.checks,
sourceArtifactIntegrity: result.sourceArtifactIntegrity,
},
null,
2,
),
);
if (!result.success) {
console.error(JSON.stringify(result.issues, null, 2));
process.exitCode = 1;
}
}
```
Run `node check-editions.mjs`. It prints the compact result above. Local parsers check structure and local relationships. The evaluator also checks the supplied snapshots, their SHA-256 digests, identities and typed connections. It does not fetch URLs or read the original source files.
2. Follow an edition and its citation [#2-follow-an-edition-and-its-citation]
Open `entities.json` and compare the two `source_edition` entries:
| Detail | Edition A | Edition B |
| --------------------- | ------------------ | --------------- |
| Edition ID | `edition-a` | `edition-b` |
| Declared title | Memo A | Memo A |
| Source reference | `source:memo-a` | `source:memo-b` |
| Declared pages | 3 | 4 |
| Release date | September 10, 2026 | Not supplied |
| Declassification date | Explicitly unknown | Not supplied |
The two artifacts have different declared SHA-256 digests. The shared title does not make them interchangeable. The review cites page 2 of A and page 3 of B; that comparison remains an attributed review with an `inconclusive` outcome.
The first claim in `history.json`, `passage`, quotes edition A. Its `editionCitation` connects four things:
1. `document` identifies the exact `entities.json` snapshot by document ID, schema ID and SHA-256.
2. `editionId` selects `edition-a` inside that snapshot.
3. `artifact` identifies `source:memo-a` and its declared file digest.
4. `locator` selects page 2 of that edition.
The claim's `provenance` repeats the same artifact and locator and names the extractor and attributed source. The parser rejects disagreements between those two citations. The supplied-document evaluator can then check the page against the edition's declared page count.
**There are two different digests here.** `document.sha256` identifies the JSON snapshot containing edition metadata. `artifact.digest.value` identifies the declared source file. Only the snapshot bytes are available in this exercise.
3. Try an out-of-bounds citation [#3-try-an-out-of-bounds-citation]
Save this as `break-citation.mjs` beside the other files. It changes both locators to page 4 of edition A, which declares only three pages. The changes stay in memory.
```js title="break-citation.mjs"
import { readFileSync } from "node:fs";
import { createHash } from "node:crypto";
import { evaluateArchivalClaimHistory } from "@disclosureos/schema/experimental/v2";
const read = (name) => readFileSync(name);
const history = JSON.parse(read("history.json").toString("utf8"));
const passage = history.claims.find((claim) => claim.id === "passage");
passage.provenance.locator.page = 4;
passage.editionCitation.locator.page = 4;
const documents = new Map(
["observation.json", "entities.json"].map((name) => {
const bytes = read(name);
return [createHash("sha256").update(bytes).digest("hex"), bytes];
}),
);
const result = await evaluateArchivalClaimHistory(history, { documents });
console.log(
JSON.stringify({ success: result.success, checks: result.checks }, null, 2),
);
console.error(JSON.stringify(result.issues, null, 2));
if (!result.success) process.exitCode = 1;
```
Run `node break-citation.mjs`. `success` becomes `false`, `semantic` becomes `failed`, and the process exits with status 1. It prints this issue:
```json
[
{
"code": "ARCHIVE.PAGE_BOUNDS",
"pointer": "/claims/0/editionCitation",
"message": "Citation exceeds the edition's explicitly declared page count.",
"stage": "semantic"
}
]
```
`external` remains `passed`: the supplied snapshot bytes match, but the citation is invalid. Page 4 exists in edition B's declaration, which does not make it valid for edition A. Run `node check-editions.mjs` again to confirm the original files still pass.
This check relies on a single known page count. Unknown or conflicting counts do not supply a reliable bound. A valid page number does not prove that the page contains the quoted passage.
Describe each edition [#describe-each-edition]
Use `research_entities` version `0.2.0` for archival declarations. It includes six archival entity types alongside the four witness and account types. The [field reference](/v2/docs/reference/documents) provides direct entrances to each type and preserves every nested branch.
| Entity | What it describes |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------- |
| `source_edition` | One edition's title, authorship, agency, issue date, archive location, identifiers, markings, pages and redactions. |
| `document_event` | A creation, release, classification or declassification event for one edition, with its own date, authority and citation. |
| `digital_artifact` | An exact source or product file, capture metadata, declared hashes, derivation links and custody status. |
| `digital_custody_action` | An action on that file, its sender and recipient, time, location and predecessor. |
| `external_identifier` | A catalog or other identifier scoped to the observation or one edition. |
| `identifier_check` | A dated check of a particular identifier assertion, including the checking agent, method and outcome. |
To assemble your own document:
1. Put each source or derived product in the [Observation inventory](/v2/docs/records). Preserve its actual access declaration and available digest.
2. Set the entity document's `observationRef` to the exact observation snapshot. Include `contextRefs` when declarations reference event or setting snapshots.
3. Create a separate edition for each copy you need to cite. Bind it to the appropriate source or product and declared SHA-256. Do not invent a digest when file identity is unresolved; retain the unresolved source inventory entry instead.
4. Add sourced assertions for metadata, document events and handling history. Run `parseArchivalEntities`, then save the JSON and calculate its digest from those exact bytes.
5. Declare the entity snapshot in an archival claim history's `entityRefs`. Build citation and review references from that same snapshot, then supply the document bytes to `evaluateArchivalClaimHistory`. An empty `claims` list can check connections without adding a review.
Every field assertion retains its own identity and provenance. `known` means a value was supplied, not independently verified. Omission, `unknown`, `redacted`, `approximate` and `unmapped` have different meanings. Keep conflicting assertions separate instead of silently choosing one.
Page counts are positive integers. A redaction percentage is 0–100; a category such as `partial` does not supply that percentage. Dates retain their precision. In the example, the release date is known while the declassification date and current marking remain unknown. A historical marking does not establish the current status.
Preserve digital custody [#preserve-digital-custody]
In the example, `file-a` identifies edition A's artifact. Its first custody action, `receive-a`, declares an unknown predecessor. `store-a` explicitly follows `receive-a`. The gap remains visible even though these references pass validation.
Each action identifies one artifact. Its predecessor is another action on that artifact, a declared beginning or an explicit unknown gap. **Array order is not the handling sequence.** Predecessors and derivation links must be acyclic. Unambiguous sender/recipient declarations and comparable times must agree across a handoff.
Keep derived files distinct from their originals. Additional SHA-256, SHA-512, SHA-1 and MD5 declarations retain their algorithm and scope. The example preserves an MD5 declaration for an unavailable original; that value does not verify either retained edition. Capture metadata is also a declaration, and GPS altitude retains its unit or `null` when unknown.
A catalog identifier identifies a catalog record, not necessarily the reported event. An identifier check records which assertion was checked, when and how. A reachable URL does not establish an identity match. Physical sample handling belongs to [Materials and laboratory](/v2/docs/physical-samples).
Cite and review the exact copy [#cite-and-review-the-exact-copy]
Archival claim history `0.4.0` uses entity documents `0.2.0`. Its `subject` identifies what is being reviewed; `editionInputRefs` identifies the exact edition passages used as inputs. Citations can locate a page, time range or JSON pointer.
Source statements can retain a `reportedArtifactReview`. An assessed claim uses `artifactReview` with explicit inputs, evaluator, method/version, evaluation time and rationale. A review may include credentials, organization, historical review date, findings, report reference, qualitative confidence and manipulation declarations. Keep independent reviews as separate claims. Parsing an attributed “authentic” finding does not perform or endorse that review.
Even a whitespace change to an entity snapshot changes its SHA-256. For a new review, construct references from the new saved bytes; keep earlier reviews bound to the original snapshots. Replacing a digest alone does not re-evaluate a claim. Entity versions are not projected automatically.
A successful archival check leaves source-artifact integrity, scientific interpretation, profile applicability, time normalization and sensor fusion `not_checked`. It does not establish complete custody, authenticity or redistribution rights. Typed public fields reject extra properties, but free text, names, URLs and extensions still require publication review; validation is not a privacy sanitizer.
Check source provenance [#check-source-provenance]
The released-document profile checks selected public source files, release citations and supplied bytes. It is separate from the archival snapshot checks above.
**Use its own history and selection.** This profile accepts claim-history `0.1.0`, not the archival `0.4.0` history. The [shared provenance exercise](/v2/docs/provenance-examples) supplies compatible documents and local source bytes. Do not remove archival detail to make its history fit that profile.
Select the sources to check [#select-the-sources-to-check]
A released-document selection names the exact `historyId` and `observationId`, then a nonempty list of unique source references. Each entry includes `release`:
* A known release supplies `releasedBy` and `reference` for the declared authority/publisher and citation.
* An unknown release supplies a reason. That preserves missing context but does not satisfy the required release citation.
This profile requires `kind: document` and `access: public`. Restricted or withheld sources can be valid elsewhere in the standard. Do not relabel them to make the checklist pass. Public access does not establish permission to redistribute a file.
Run the release-provenance evaluator [#run-the-release-provenance-evaluator]
Use `evaluateReleasedDocuments(history, selection, { assets })` from `@disclosureos/schema/experimental/v2`. The shared exercise demonstrates this call. Supply original file bytes in an `assets` map keyed by `sourceRef`; the evaluator does not fetch source URLs. This map holds source files, whereas the archival evaluator's `documents` map holds JSON snapshots keyed by SHA-256.
Preserve passage provenance [#preserve-passage-provenance]
Current source statements and observation value assertions that directly cite selected sources form the extraction scope. A supplied direct extraction requires a locator and extractor. Author/speaker attribution is recommended here; it is required by the testimony profile. Superseded statements do not determine the current extraction checklist.
No supplied extraction yields `not_applicable`, which does not mean extraction is exhaustive. This profile does not inspect locator bounds or passage contents. OCR, translations and other derived products need their own processing provenance.
Read the result [#read-the-result]
| Result | Meaning |
| ------------------------------------------------- | -------------------------------------------------------- |
| Missing required metadata | The corresponding requirement fails. |
| Eligible declarations, unavailable bytes | The file check remains `not_checked`. |
| Supplied bytes differ from the digest | The file check fails. |
| Required declarations and matching nonempty bytes | The selected-file checks pass within their stated scope. |
Titles and URIs are recommended citation aids. Incomplete unselected sources do not penalize the selected documents. Here, `external: passed` means supplied source bytes match their declared digests. Release authenticity, redistribution rights, locator contents, extraction accuracy, assessment support and scientific eligibility remain `not_checked`.
Field reference [#field-reference]
* [Edition and custody fields](/v2/docs/reference/documents): inspect edition metadata, custody actions, reviews and source-file selection separately.
* [Documents in the showcase](/showcase?surface=desk\&deskGroup=documents\&view=documents): explore the full fictional case's editions and facsimiles. It has different source files from this focused exercise.
* [Materials and laboratory](/v2/docs/physical-samples): connect physical samples to their custody and analytical results.
Exact schema exports are `@disclosureos/records/experimental/v2/entities/schema/0.2.0`, `@disclosureos/records/experimental/v2/claims/schema/0.4.0` and `@disclosureos/schema/experimental/v2/released-documents/schema`. The selection URN is `urn:disclosureos:experimental:released-document-selection:0.1.0`. Schema URNs identify contracts, not downloadable HTTP endpoints.
# Reproduce an ELDÆON reading (/v2/docs/eldaeon-reading)
Reproduce **5.0 V/m** from an ELDÆON environment log, then inspect what the standard can and cannot verify. This is real mission data with incomplete equipment context. It demonstrates how to retain a useful reading without presenting it as a calibrated measurement.
[Open this reading in the mission viewer](/datasets/eldaeon/july-2026?view=sensors\&night=0\&interval=20\&channel=ef).
1. Run the example [#1-run-the-example]
[Download the example](/examples/v2/eldaeon-reading.zip), unzip it and open the `eldaeon-reading` folder. With Node.js 22 or newer:
```sh
npm install
npm start
```
The dependency is the published `@disclosureos/schema@2.0.0-beta.4`. Installation fetches dependencies. The check itself reads local files and makes no network requests.
The download includes the same ten-minute JSON projection used by the portal, four standard documents, a partial export manifest and a reproduction script. It does **not** include the full original CSV or sensor README. Their hashes are retained from the mission intake. Source data remains attributed to ELDÆON; this download does not grant new redistribution rights.
2. Read the result [#2-read-the-result]
The output separates **reproducing the recorded value** from **qualifying its capture context**:
| Check | Expected result | Meaning |
| ----------------------------------------- | --------------- | -------------------------------------------------------------------------------------------------------------------- |
| Retained window bytes | Matched | The JSON projection matches its saved digest. |
| Recorded cell | 5.0 V/m | The source cell and standard measurement agree. V/m is declared by the provider; measurement uncertainty is unknown. |
| Original CSV bytes | Not supplied | The default run does not recheck the original file. |
| Standard structure and relationships | Passed | The documents have valid shapes and their declared connections resolve. |
| Acquisition profile | Failed | `BINDING.CONTEXT_INCOMPLETE`: required equipment and capture details remain unknown. |
| Measurement profile | Failed | `MEASUREMENT.CAPTURE_UNKNOWN`: equipment capture boundaries are not established. |
| Scientific validity and clock uncertainty | Not checked | Copying a value and normalizing its timestamp do not establish accuracy or synchronization. |
`npm start` exits successfully when the recorded value is reproduced and the standard reports these expected limitations. It does **not** turn either failed profile into a pass. Use this command to require qualification instead:
```sh
npm run qualify
```
It currently exits with status **1**. A missing calibration record should lead to a data request, not a fabricated calibration or relaxed validation rule.
3. Follow the source connection [#3-follow-the-source-connection]
| File | Role |
| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| `source.json` | Identifies the original CSV, its retained intake hash, physical line **27746**, electric-field column and original local time. |
| `row.json` | One retained row, represented as a derived product. `/raw/5` contains the source cell `"5.0"`. The original CSV remains a separate raw product. |
| `window.json` | The portal's complete interval, included for an independent comparison with `row.json`. It also contains rows outside this one-reading mapping. |
| `history.json` | Contains one observation, its source assertion, measured value and processing lineage. The claim list is empty. |
| `context.json` | Describes the logger and capture with explicit unknowns for unsupplied details. |
| `export-mapping.json` | A partial manifest authored by DisclosureOS from the export and retained README unit declaration. It is not a provider-issued hardware configuration. |
| `bindings.json` | Connects the observation's original CSV to the context's captured product and instrument. |
| `measurements.json` | Connects the recorded value to that product, the electric-field channel and its declared time. |
The original timestamp is **2026-07-28 22:29:00 PDT**. Applying the provider's UTC−07:00 declaration gives **2026-07-29 05:29:00 UTC**. Duplicate timestamps elsewhere in the file remain separate rows. No interpolation, averaging or unit conversion is performed.
The measurement-binding profile stops at the unresolved capture time. The script also runs the acquisition profile separately, so its context diagnostics and available artifact checks remain visible. A profile's `external: not_checked` is not proof that every original file was verified.
4. Check an original file locally [#4-check-an-original-file-locally]
If you have the original CSV, provide its local path:
```sh
npm start -- --original "/path/to/2026-07-28-12_17_28.csv"
```
The script checks the full file's byte length and SHA-256 against the retained intake, then compares physical line 27746 with the projected row. It does not upload the file. A mismatch stops the run. Supplying matching bytes does not resolve the missing equipment context, and it does not check the README's bytes or calibration.
A changed projected cell, canonical measurement, timestamp or channel mapping also fails the reproduction check. The example's tests cover those cases to prevent the viewer and standard documents from silently diverging.
5. Complete the capture context [#5-complete-the-capture-context]
Before treating this as a qualified measurement, obtain:
* The equipment model, serial number and channel configuration used for this export.
* Hardware and firmware revisions, the nominal sampling behavior and units for each channel.
* Capture and deployment boundaries, plus clock source, synchronization and uncertainty.
* Applicable calibration records and their validity periods.
The magnetic and RF channels need their own unit clarification. This example deliberately uses the electric-field channel, whose README declaration is V/m. A confirmed unit label still does not establish calibration.
This is one reproducible reading, not a complete mission `DatasetRelease`, a cross-sensor time alignment or an anomaly assessment. Extend the mapping to other channels only when their source interpretation is clear.
Continue [#continue]
Use [Connect measurements](/v2/docs/bindings) for the general contract, [Equipment and captures](/v2/docs/instruments) for capture context, or [Prepare a dataset contribution](/v2/docs/datasets) for the broader handoff. The [synthetic measured-value exercise](/v2/docs/worked-example) demonstrates a complete declared mapping with passing profile checks.
# Build with DisclosureOS (/v2/docs)
DisclosureOS defines how to describe an observation, connect its source material and keep attributed reviews alongside it. You work with JSON documents and validation tools. Your application chooses how to store the files and display the results.
Start with one record [#start-with-one-record]
Create a small observation, run the validator and read its response. You will learn how to represent missing information and what a successful check means before adding instruments or reviews.
[Create your first record →](/v2/docs/quickstart)
Node.js 22 · JavaScript · One package · No account or hosted service
To try a check without installing, open the [Document inspector](/v2/inspect) with a fictional example. Your input stays in your browser.
Start from the working viewer [#start-from-the-working-viewer]
Run the fictional example case locally. Inspect a recording, follow it to a source file, then see how the viewer uses the standard.
[Run the showcase →](/v2/docs/showcase#run-the-viewer)
Bring your own data [#bring-your-own-data]
Prepare a small, representative sample from your dataset. Identify its sources, collection details and missing information before mapping it to records.
[Prepare a dataset →](/v2/docs/datasets)
How the pieces fit [#how-the-pieces-fit]
Start with an **observation**: a record of an event and the sources that describe it. Keep the original files in their native formats. The record identifies those files and connects measurements to their sources. A viewer, archive or analysis tool can use those relationships.
01 / Retain
Source files
Recordings, accounts, documents and laboratory files.
02 / Describe
Observation
Source references, measured values and explicit gaps.
03 / Review
Attributed claims
A reviewer, a method, supporting inputs and an outcome.
**Add only the parts your work needs.** These are related parts of the standard, not six required setup steps. A witness account does not need an instrument, and an observation does not need an origin hypothesis or score.
* [**Records**](/v2/docs/records-overview) cover observations and their supporting accounts, documents, setting and samples.
* [**Instruments**](/v2/docs/instruments-overview) connect readings to equipment and capture conditions.
* [**Observables**](/v2/docs/observables) provide terms for characteristics reported or investigated.
* [**Claims**](/v2/docs/claims) keep interpretations tied to a reviewer, subject and supporting material.
* [**Origins**](/v2/docs/origins) provide terms for possible explanations.
* [**Scoring**](/v2/docs/assessment) records checks and attributed scores under declared methods.
The [standard overview](/v2/standard) explains these concepts through interactive examples. The guides here cover their implementation.
Find the detail you need [#find-the-detail-you-need]
Use a **guide** to assemble documents and run checks. Use a **field reference** to look up exact fields, alternatives and constraints. Search includes nested fields, such as `pageCount` or `uncertainty`.
| Working with | Implementation guide | Field reference |
| -------------------------------- | ----------------------------------------------------- | ---------------------------------------------------------- |
| An observation | [Observation records](/v2/docs/records) | [Observation fields](/v2/docs/reference/records) |
| Equipment and recordings | [Equipment and captures](/v2/docs/instruments) | [Acquisition and bindings](/v2/docs/reference/instruments) |
| Event descriptions and setting | [Event and setting](/v2/docs/context) | [Event and setting](/v2/docs/reference/context) |
| Witness accounts | [Witnesses and accounts](/v2/docs/testimony) | [Witnesses and accounts](/v2/docs/reference/testimony) |
| Reports and editions | [Documents and custody](/v2/docs/documents) | [Editions and custody](/v2/docs/reference/documents) |
| Specimens and laboratory results | [Materials and laboratory](/v2/docs/physical-samples) | [Materials and laboratory](/v2/docs/reference/materials) |
What you can use today [#what-you-can-use-today]
The guides use the published **2.0.0-beta.4** packages, including the sensor profiles, laboratory records and review APIs demonstrated in the showcase. Each guide names the packages it needs. The working viewer is available as a separate source download.
[Installation and availability](/v2/docs/installation) · [Viewer and format support](/v2/docs/showcase-support)
Validation checks document structure and declared relationships. It does not establish source authenticity or a scientific conclusion. A check that has not run stays `not_checked`.
DisclosureOS is in beta. The [ELDÆON partner preview](/datasets/eldaeon/july-2026) uses a partial native mission archive, with source-intake checks and known limitations visible. Additional files, clock alignment and calibration context remain outstanding. Independent exchange testing, reproducible analysis, scientific review and governance remain stable-release gates.
Read with your tools [#read-with-your-tools]
Use **Copy Markdown** or **Open** at the top of a guide or reference to read that page as text. Field exports include nested definitions and their publication status.
Use individual page exports for focused work. The [documentation index](/llms.txt) lists the main starting paths; the [complete V2 text](/llms-full.txt) is a large export of all guides and references. Historical V1 guidance is linked separately.
# Installation and availability (/v2/docs/installation)
DisclosureOS is in beta. The published V2 packages are at **2.0.0-beta.4**. All six documentation areas use this release, including laboratory records, sensor profiles, shared vocabulary references and provider scoring.
Start with one package [#start-with-one-package]
For your first integration, use **Node.js 22 and npm**. In your project directory, install the records package:
```sh
npm install --save-exact @disclosureos/records@2.0.0-beta.4
```
[Create and validate your first record →](/v2/docs/quickstart)
The tutorial includes project setup, a complete example, its expected result and a deliberate error. No account or hosted service is required.
**Use an exact version.** The `beta` tag currently points to `2.0.0-beta.4`; `latest` still points to V1. An install without a version selects `latest`. Commit your lockfile so your application can reproduce its dependency set.
Add packages as needed [#add-packages-as-needed]
You do not need to install all seven packages. Add each package at `2.0.0-beta.4` when the guide you are following calls for it.
| Package | Use it for |
| --------------------------- | ---------------------------------------------------------------------------------------------------- |
| `@disclosureos/records` | Observation documents, source relationships and attributed claim histories. |
| `@disclosureos/instruments` | Equipment, recording sessions and capture conditions. |
| `@disclosureos/schema` | Checks across supplied documents and supported source-file profiles. |
| `@disclosureos/cli` | Command-line tasks, including source intake and dataset checks. Install as a development dependency. |
| `@disclosureos/observables` | Revised characteristic definitions and shared vocabulary references. |
| `@disclosureos/origins` | The origin catalog, immutable catalog snapshots and claim connections. |
| `@disclosureos/scoring` | Provider scoring policies and results, comparisons and evaluation summaries. |
For example, to add equipment and cross-document checks:
```sh
npm install --save-exact @disclosureos/instruments@2.0.0-beta.4 @disclosureos/schema@2.0.0-beta.4
```
For the [dataset contribution exercise](/v2/docs/datasets):
```sh
npm install --save-dev --save-exact @disclosureos/cli@2.0.0-beta.4
```
The packages use ESM. Use a `.mjs` file, or configure your project for ESM. V2 document APIs use `/experimental/v2` imports where the guide specifies them; catalog exports use their documented entry points. Copy the import from the relevant guide rather than adding that suffix to every package.
One release across the guides [#one-release-across-the-guides]
Use `2.0.0-beta.4` for the documented record, instrument, observable, claim, origin and scoring APIs. The sensor-profile guides also provide optional instructions for rebuilding their synthetic data from the exact source revision used to create it. You do not need to build the standard from source to use these APIs.
The [Document inspector](/v2/inspect) checks supported observation, context, research-entity and claim-history documents, including material and laboratory records. It checks one document at a time. Sensor profiles, provider scores and external files require their package evaluators, as shown in the relevant guide.
The [standalone showcase](/v2/docs/showcase#run-the-viewer) remains a React/Next.js application supplied as source. Its renderers are not a separately published npm component package. The [renderer support guide](/v2/docs/showcase-support) identifies supported inputs and display limits.
Reproduce a retained example [#reproduce-a-retained-example]
A fixture's source revision records how its files were generated. Keep that revision when rebuilding the fixture, along with its retained documents and digests. Use the published packages for the guide's validation and reading examples. A successful check does not establish physical calibration or scientific validity.
Release identity [#release-identity]
The [Beta 4 verification receipt](/releases/2.0.0-beta.4.json) records the package fingerprints and canonical source revision `fd2b451e694b4bcc383a25b362eeacaf94ac2fd3` used for that release. The [portal inventory](/releases/portal.json) separately identifies this site's installed packages, retained example sources and hosted schemas.
Keep these identifiers separate:
* **Package version:** the npm release you install, such as `2.0.0-beta.4`.
* **Source revision:** the exact repository commit used to build a release or reproduce an example.
* **Document or profile version:** the format declared inside a document, such as observation `schemaVersion: "0.1.0"`. Use the value specified by that format, not the npm version.
* **Catalog revision:** the immutable definition set selected by a vocabulary reference.
Experimental schema URNs identify formats; they are not downloadable HTTPS addresses. Obtain schema documents from the exports named in each field reference.
# Instruments overview (/v2/docs/instruments-overview)
The Instruments area covers equipment, recording sessions and the links from an observation to captured data. Your application retains the original files. The standard describes those files and the conditions under which they were produced.
Start with one capture [#start-with-one-capture]
Choose one instrument, the configuration it used and one recording. Describe them in an **acquisition context**: a document that identifies equipment, channels, capture times, calibration declarations and output files.
You can describe several instruments in the same context. Start small so you can check identifiers, units and timing before adding more channels.
[Describe equipment and a capture →](/v2/docs/instruments)
Need the record itself? Start with the
Observation guide
.
Connect a reading to its capture [#connect-a-reading-to-its-capture]
An observation stores the measured value and its source history. Acquisition context describes how the source data was collected. **Bindings** connect the two using explicit identifiers. They do not rely on matching filenames or labels in a chart.
Observation
The measured value
Its quantity, unit, source product and processing history.
Bindings
The connection
The source instrument, captured product, channel and measurement time.
Acquisition context
The capture
Equipment, configuration, timing, calibration and output files.
There are two binding documents. **Acquisition bindings** connect the observation's instrument source and raw product to the equipment and captured product. **Measurement bindings** connect a measured value to that product, one captured channel and an explicit time. The current measurement check supports one instrument raw product and one channel per measurement; showing several sensors together does not validate a fused measurement.
Assemble the links [#assemble-the-links]
Read the mapping rules, timing requirements and limits before connecting measurements in your application.
[Connect measurements →](/v2/docs/bindings)
Run a complete example [#run-a-complete-example]
Download a synthetic measurement, its four JSON documents and three source artifacts. Run the checks with matching, missing and altered bytes.
[Check a measured value →](/v2/docs/worked-example)
The **Field reference** under Equipment and captures covers all three documents: acquisition context, acquisition bindings and measurement bindings. Use it for [exact fields and constraints](/v2/docs/reference/instruments). The runnable example also appears under **Build & contribute** because it brings Records, Instruments and the shared evaluator together.
Choose a sensor profile when needed [#choose-a-sensor-profile-when-needed]
A sensor profile adds declarations for a particular kind of source data, such as radar returns or a satellite raster. Use one when you need its specific relationships and checks. You do not need a dedicated profile to describe an instrument and its captures.
These profiles combine an observation, acquisition context and source selection with sensor-specific declarations. They do **not** require the scalar measurement-binding example first. Choose the profile that matches your source data; the five guides are alternatives, not a sequence you must complete.
**All five profiles are published in Beta 4.** Each guide shows the package API, a complete synthetic example and optional source-reproduction steps.
| Profile | What it describes |
| --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| [Radar](/v2/docs/radar) | Scan or dwell timing, returns, detection decisions and track estimates. Scenarios include moving platforms and cooperative replies. |
| [Active sonar](/v2/docs/sonar) | Transmitted pings, echo samples, receive availability and the assumption used to convert delay to distance. |
| [Passive sonar](/v2/docs/passive-sonar) | Pressure samples and the input windows used to calculate spectra, including unavailable samples. |
| [Lidar point clouds](/v2/docs/lidar) | A pulse register, spatial returns, coordinate frames and retained no-return or unavailable states. |
| [Satellite rasters](/v2/docs/satellite) | Spectral bands, quality flags, scaling and grid coordinates tied to retained raster cells. |
The viewer supports more recording families than this list of profiles. Cameras, scalar readings, waveforms and other examples may use the shared acquisition documents and format readers. A visualization does not imply a dedicated sensor profile or support for every native file format. Check [renderers and format support](/v2/docs/showcase-support) for those boundaries.
Understand what a check establishes [#understand-what-a-check-establishes]
The result depends on the API you run. Keep its individual check statuses alongside `success`.
| Check | What a passing result establishes |
| ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Parse an acquisition context | The document has the expected structure and its local references resolve. Source files and physical calibration remain unchecked. |
| Evaluate measurement bindings | The declared observation, capture, channel and time agree. The profile also requires matching artifact bytes. It does not inspect their numerical content or recalculate the measured value. |
| Evaluate a sensor profile | The supplied source files, layouts and relationships satisfy that profile's rules. Some profiles also reproduce a calculation, such as the passive sonar spectrum. Read the guide's result stages and limits. |
**Missing files have different result statuses.** In the measurement-binding example, missing required bytes leave `profile: not_checked`. In the five sensor-profile examples, a missing required source fails the `sources` stage and prevents later content checks. Both return `success: false`. Do not convert either result into a negative observation or an empty measurement.
The evaluators use files supplied by your application; they do not fetch remote URLs. A successful check does not authenticate a sensor, approve its calibration or establish a physical explanation. Keep those review outcomes separate from capture declarations and numerical checks.
Availability and next steps [#availability-and-next-steps]
The acquisition context, two binding contracts and sensor profiles are all available in `2.0.0-beta.4`. Use that exact package version; document and profile versions remain separate. See [installation and release details](/v2/docs/installation).
For an interactive introduction, visit the [Instruments standard page](/v2/instruments). To inspect the example case's connected recordings, [open its research desk](/showcase?surface=desk\&view=instruments).
# Equipment and captures (/v2/docs/instruments)
An **acquisition context** describes how instrument data was captured. It holds the equipment, configuration revisions, deployment, calibration declarations, recording sessions and output files. The observation holds the measured values; [bindings](/v2/docs/bindings) connect those values to their captures.
This guide starts with a populated synthetic capture from the complete measurement example. You will validate it, follow its identifiers and diagnose a broken product-to-capture link. The fixture represents a one-minute background recording from a fictional station. It is not partner data or a demonstrated sensor calibration.
**Requirements:** Node.js 22. Create a project and install the published instruments beta:
```sh
mkdir equipment-example
cd equipment-example
npm init -y
npm install --save-exact @disclosureos/instruments@2.0.0-beta.4
```
This walkthrough uses acquisition context `0.1.0`. Its schema version is separate from the npm package version. Sensor profiles add checks for specific recording formats; this walkthrough starts with the shared capture document.
1. Start with a populated capture [#1-start-with-a-populated-capture]
[Download the capture document](/examples/v2/measurement/context.json) and save it as `context.json` in your project. Keep its identifiers and source declarations unchanged for the walkthrough. The [example README](/examples/v2/measurement/README.md) identifies the original source revision and license.
The document contains one item in each of six inventories:
| Inventory | This fixture | What it describes |
| -------------- | -------------- | ---------------------------------------------------------------------------------------------------------- |
| `instruments` | `station` | The physical equipment identity. |
| `manifests` | `r1` | Configuration revision 1, with the `radar` channel measuring radial velocity in `m/s` at a declared 10 Hz. |
| `deployments` | `d1` | The station's declared site and operating period. |
| `calibrations` | `c1` | A calibration declaration for that configuration and channel, with an explicitly unreviewed report. |
| `acquisitions` | `a1` | The capture from 12:10 to 12:11 UTC on July 28, 2026, with its active channel and clock declarations. |
| `products` | `captured-raw` | A raw output file linked to capture `a1`, with declared media type, byte length and SHA-256 digest. |
An instrument is not a recording. A configuration can be reused across deployments and captures; each capture has its own timing and output products. A channel belongs to a configuration revision, rather than being a globally unique sensor ID.
2. Validate and save [#2-validate-and-save]
Save this script as `capture.mjs` beside `context.json`. It reads the document, checks its structure and local relationships, and saves the parsed result only when the check succeeds.
```js title="capture.mjs"
import { readFileSync, writeFileSync } from "node:fs";
import { parseAcquisitionContext } from "@disclosureos/instruments/experimental/v2";
const context = JSON.parse(readFileSync("context.json", "utf8"));
if (process.argv.includes("--break-capture-link")) {
context.products[0].acquisitionRef = "acquisition:missing-capture";
}
const result = parseAcquisitionContext(context);
console.log(
JSON.stringify(
{
success: result.success,
checks: result.checks,
uncheckedArtifactPointers: result.uncheckedArtifactPointers,
},
null,
2,
),
);
if (!result.success) {
console.error(JSON.stringify(result.issues, null, 2));
process.exitCode = 1;
} else {
writeFileSync("checked-context.json", JSON.stringify(result.data, null, 2) + "\n");
console.log("Saved checked-context.json");
}
```
Run it from your project directory:
```sh
node capture.mjs
```
You should see this result, followed by `Saved checked-context.json`:
```json
{
"success": true,
"checks": {
"structural": "passed",
"semantic": "passed",
"profile": "not_checked",
"external": "not_checked"
},
"uncheckedArtifactPointers": [
"/manifests/0/artifact",
"/calibrations/0/report/artifact",
"/products/0/artifact"
]
}
```
The parser has checked the document shape and local relationships. It has not opened the configuration file, calibration report or raw recording. `uncheckedArtifactPointers` identifies those declarations by their location in the JSON. It is not a list of downloaded files.
`success: true` means this parse succeeded. The unchecked profile and external stages remain explicit. It does not mean the equipment was authenticated, the calibration approved or the recorded values independently verified.
3. Try a broken capture link [#3-try-a-broken-capture-link]
Run the same script with its failure flag:
```sh
node capture.mjs --break-capture-link
```
The script changes the product's capture reference **in memory** to `acquisition:missing-capture`. It leaves the downloaded file untouched. The shape still passes, but `success` becomes `false`, `semantic` becomes `failed`, and the script exits with status 1. It prints this issue:
```json
[
{
"code": "REF.LOCAL_RESOLUTION",
"stage": "semantic",
"severity": "error",
"pointer": "/products/0/acquisitionRef",
"message": "Undeclared pinned reference: acquisition:missing-capture"
}
]
```
The pointer leads to the broken link: the first product names a capture that does not exist in `acquisitions`. An existing `checked-context.json` is not overwritten on failure, so its presence alone does not prove the latest run passed. Run without the flag to validate the original document again.
Follow the configuration and channel [#follow-the-configuration-and-channel]
The raw product points to `acquisition:a1`. Capture `a1` points to `instrument:station`, pins `manifest:r1` and `deployment:d1`, and activates the `radar` channel with `calibration:c1`.
| Reference | Meaning |
| -------------------- | --------------------------------------------------------------------------------------- |
| `instrument:station` | The instrument entry with ID `station` in this context. |
| `manifest:r1` | The configuration entry with ID `r1`, not whichever configuration is newest. |
| `deployment:d1` | The deployment associated with the capture. |
| `calibration:c1` | The calibration declared for this instrument, configuration and channel. |
| `acquisition:a1` | The recording session that produced the raw file. |
| `channelId: "radar"` | A bare channel ID within the pinned manifest. It does not use the `instrument:` prefix. |
These are local references, not URLs. IDs must resolve to the appropriate inventory; a matching display name is insufficient. The parser also checks relationships such as whether an active channel is in its pinned manifest and whether its calibration covers that channel.
A manifest's `version` describes the configuration revision. When hardware, firmware or channels change, preserve the earlier manifest and create a new revision. Keep older captures linked to the revision used at the time.
Map your own capture [#map-your-own-capture]
Begin with one representative recording and the metadata supplied with it. Use the example's structure, then replace its fictional declarations with your own. Do not retain its sample clock precision, calibration or timestamps as defaults.
* Identify the equipment and the configuration used. `identity` and the hardware and firmware declarations have explicit unknown alternatives when that information is missing.
* Declare each channel's quantity, unit and sampling information. Do not infer a sample rate from the viewer's playback speed.
* Record the deployment and capture period separately. A deployment can span several captures. The observation's event time is a third, distinct declaration.
* Attach the active channel and its calibration state. A missing calibration is not the same as an unreviewed calibration report.
* Identify each retained raw product. Compute its byte length and digest from the actual file, not a filename or an expected value. Reformatting a file changes its bytes and can change its digest.
The six inventory arrays are required, but the parser permits empty inventories. An empty document can pass a structural check without describing any usable recording. Populate the relationships your integration needs and keep missing declarations explicit using the alternatives in the [field reference](/v2/docs/reference/instruments).
Keep timing and calibration qualified [#keep-timing-and-calibration-qualified]
Capture time, clock source, synchronization, resolution and uncertainty are separate declarations. Preserve the provider's time scale and known or unknown state. Do not invent an instant from a filename or assume that two channels share a clock because a viewer displays them together.
The synthetic fixture deliberately declares zero clock uncertainty. That is an authored test value, not a general claim of perfect timing. The parser checks the declaration; it does not estimate clock error or establish cross-sensor synchronization.
Calibration records retain the method and version, validity period, report metadata, stated uncertainty and review state. A pinned calibration means the capture names that record. It does not establish that the procedure was executed correctly or that a reviewer accepted it. Matching a report's digest establishes a byte match, not the quality of its calibration.
Connect the capture to a measured value [#connect-the-capture-to-a-measured-value]
Acquisition context is a separate document from the observation. **Acquisition bindings** link an observation's instrument source and raw product to this context. **Measurement bindings** identify the captured channel and explicit measurement time supporting a measured value.
The [shared field reference](/v2/docs/reference/instruments) has three document choices: Equipment & captures, Source & product links, and Measurement links. Each has scoped search, nested constraints and direct field links. Use [Connect measurements](/v2/docs/bindings) for the mapping rules and evaluator limits.
To check the related source files as well, continue with the [complete measurement example](/v2/docs/worked-example). Its download includes the original context used here, the other three documents and the exact artifact bytes. It specifies its own package version. The evaluator checks the required bytes you supply; it does not fetch remote URLs, decode arbitrary telemetry or prove the scientific meaning of a measurement.
Continue exploring [#continue-exploring]
* [Instruments overview](/v2/docs/instruments-overview): choose among the shared acquisition model, binding workflow and optional sensor profiles.
* [Instruments standard page](/v2/instruments): inspect the recording examples and see how a viewer can present these relationships.
* [Field recordings in the research desk](/showcase?surface=desk\&view=instruments\&workspace=mixed): see the full fictional case's connected recordings. Its captures are distinct from this small validation fixture.
For a partner integration, request one native recording with its configuration, channel definitions and clock and calibration declarations before scaling to the archive. The [ELDÆON preview](/datasets/eldaeon/july-2026) includes supplied native files and an explicit source inventory. [Reproduce one electric-field reading](/v2/docs/eldaeon-reading) to follow a source row into the standard. Clock alignment, calibration and several channel definitions remain unresolved; an intake receipt is not a complete acquisition mapping.
The acquisition JSON Schema export is `@disclosureos/instruments/experimental/v2/acquisition/schema`. Its identifier, `urn:disclosureos:experimental:acquisition-context:0.1.0`, names the contract rather than a downloadable HTTP endpoint.
# Lidar point-cloud profile (/v2/docs/lidar)
A lidar point cloud records spatial returns from laser pulses. One pulse can have several returns. This profile preserves that relationship and distinguishes a pulse with no detected return from one whose result is unavailable.
You will reproduce a fictional local survey, validate its two source tables, inspect a point and its pulse, then diagnose three failures. A passing check establishes source integrity and consistency with the declared geometry. It does not establish survey accuracy or identify a material.
Profile status [#profile-status]
**Published in npm `2.0.0-beta.4`.** The profile evaluators and readers are available through `@disclosureos/schema/experimental/v2`. The retained source revision below is only needed to regenerate this example.
[Equipment and captures](/v2/docs/instruments) explains the shared equipment model. This optional profile adds a static pulse register, discrete point returns and a local coordinate frame to an observation, acquisition context and source selection. It does not require scalar measurement bindings or claim history.
1. Open the published-package example [#1-open-the-published-package-example]
**Requirements:** Node.js 22, npm and a ZIP extractor. Create a local project and install the published API:
```sh
mkdir disclosureos-lidar-beta4
cd disclosureos-lidar-beta4
npm init -y
npm install --save-exact @disclosureos/schema@2.0.0-beta.4
curl --fail --location https://os.disclosure.org/examples/meridian.zip --output meridian.zip
unzip meridian.zip
curl --fail --location https://os.disclosure.org/examples/v2/lidar/check-lidar.mjs --output check-lidar.mjs
node check-lidar.mjs meridian/lidar-v1
```
The download contains the full fictional example case. This guide uses only `meridian/lidar-v1`. Keep the terminal in this npm project for the checks below. The displayed profile and selected-value results are explained in the following sections.
Use a **separate terminal and directory** for this reproduction. It regenerates the retained fixture; it is not required to install or use the published profile APIs. Return to the npm project above for the rest of this guide.
Reproduce a local survey [#reproduce-a-local-survey]
**Requirements:** Node.js 22, Git and pnpm 9.15.0. Start in a separate directory, then run:
```sh
git clone https://github.com/disclosurefoundation/disclosureos.git disclosureos-lidar
cd disclosureos-lidar
git checkout --detach e19a89793871d23fb036e59c75ff83c86e21dfad
corepack pnpm install --frozen-lockfile
corepack pnpm --workspace-concurrency=1 \
--filter "@disclosureos/schema..." build
node examples/lidar-point-cloud/build.mjs
node examples/lidar-point-cloud/verify.mjs
```
If you already built a previous sensor-profile guide at this exact revision, reuse that checkout and run the last two commands.
The build writes `examples/lidar-point-cloud/generated/`. The verifier regenerates and compares every generated file, then evaluates the profile. Its output is:
```json title="Reproduction result"
{
"files": 10,
"pulses": 1353,
"points": 1546,
"retained": 1282,
"noReturn": 36,
"unavailable": 35,
"checks": {
"structure": "passed",
"sources": "passed",
"semantics": "passed"
},
"scientific": "not_checked",
"physicalCalibration": "not_checked"
}
```
The 33 × 41 register contains 1,353 pulses. Of these, 1,282 have complete return groups, 36 have a recorded zero-return result and 35 have an unknown result. Several pulses have more than one return, so the point count is larger than the pulse count. `retained` counts pulses, not points.
Run the model checks:
```sh
node --test examples/lidar-point-cloud/model.test.mjs
```
These check complete return groups, local ray geometry, deterministic regeneration and the roof example. A pulse that intersects the opaque roof has only its roof return; the model does not invent a terrain return beneath it.
[Explore the same lidar survey](/v2/instruments?recording=survey\&example=lidar). Switch between plan, elevation and oblique views, or select a pulse in the register.
What the profile describes [#what-the-profile-describes]
The optional `LidarProfile` describes one fixed sensor and a complete rectangular register of pulse directions. It connects that register to a table of discrete returns. It declares the coordinate axes, range bounds, return conventions, intensity scale and class labels.
Four connected documents [#four-connected-documents]
| Document | What it provides |
| ----------------------- | ---------------------------------------------------------------------------- |
| `observation.json` | Sources and the two retained point-cloud products. |
| `acquisition.json` | Equipment, pinned configuration, return channel and raw artifacts. |
| `source-selection.json` | CSV layouts, column names, row counts, byte lengths and digests. |
| `lidar-profile.json` | References to those documents, product roles, pulse grid and local geometry. |
The profile selects `acquisition:lidar-capture` and channel `returns`, whose quantity is `lidar_return_position` with unit `m`. Both `acquisitionProducts` and `products` contain `pulses` and `points` roles. The first maps to acquisition products; the second maps to observation products and source layouts. Matching digests, lengths and media types bind the tables to the capture.
Both products are `raw` in this fixture. That identifies them as the retained inputs to the example, not as physically collected or unprocessed laser waveforms. `dataOrigin: synthetic` identifies their actual origin. No processing activity is declared in this packet.
Two source tables [#two-source-tables]
| File | Rows, excluding header | Contents |
| ------------ | ---------------------- | --------------------------------------------------------------------------------- |
| `pulses.csv` | 1,353 | Pulse ID, grid row and column, aim coordinates, status and return count. |
| `points.csv` | 1,546 | Pulse ID, return number and count, position, normalized intensity and class code. |
Both files are UTF-8 comma-separated tables with headers. Their exact column order is:
```text title="pulses.csv"
pulse_id,scan_row,scan_column,aim_x_m,aim_y_m,aim_z_m,status,return_count
```
```text title="points.csv"
pulse_id,return_number,return_count,x_m,y_m,z_m,intensity,class_code
```
The pulse count must equal grid rows × columns. Pulse rows follow row-major order, and IDs are unique. Each point names a retained pulse. Its group must contain every return ordinal from 1 through the declared count, in increasing distance from the sensor. This profile allows up to 15 returns per pulse.
`methods.json`, `model.mjs` and `README.md` describe the authored scene. `index.json` is a convenience file index, not another standard contract.
2. Validate files and inspect a return [#2-validate-files-and-inspect-a-return]
To use the public API separately from fixture reproduction, download the check script. Save it as `check-lidar.mjs` in your npm project so it uses the installed Beta 4 package.
From your npm project, run:
```sh
node check-lidar.mjs \
meridian/lidar-v1
```
The runner imports `evaluateLidarProfile` from `@disclosureos/schema/experimental/v2`, loads the four documents and both local tables, then calls:
```js
const result = await evaluateLidarProfile(
observation,
context,
selection,
profile,
{ assets },
);
```
`assets` maps `product:pulses` and `product:points` to complete file bytes. It is not keyed by filename or point index. The runner locates local files through the example index and does not fetch artifact URLs.
The first report is:
```json title="Profile result"
{
"success": true,
"checks": {
"structure": "passed",
"sources": "passed",
"semantics": "passed"
},
"scientific": "not_checked",
"physicalCalibration": "not_checked",
"classificationAccuracy": "not_checked",
"georeferencing": "not_checked",
"issues": []
}
```
| Check | Meaning |
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `structure` | All four inputs satisfy their prerequisite contracts. |
| `sources` | Source selections and retained bytes pass their checks, including lengths and digests. |
| `semantics` | Document and acquisition bindings, grid layout, complete return groups, labels, intensity bounds and local ray geometry satisfy the profile. |
Read the issue as well as the stage name: a document-binding error can fail semantics before source checking. All four physical and scientific checks remain `not_checked` even when `success` is true.
Only after success, select a point and follow its pulse link:
```js
const { pulses, points } = result.data.products;
const point = points[424];
const pulse = pulses[point.pulseIndex];
```
The runner prints the complete decoded point, a pulse summary and the original CSV rows:
```json title="Selected return"
{
"point": {
"index": 424,
"pulseIndex": 459,
"pulseId": "pulse-0459",
"returnNumber": 2,
"returnCount": 3,
"x": -8.74469,
"y": 9.412687,
"z": 3.8,
"intensity": 0.329574,
"classCode": 5,
"rangeM": 19.14962871065831,
"row": {
"byteOffset": 17948,
"byteLength": 47
}
},
"pulse": {
"index": 459,
"id": "pulse-0459",
"status": "retained",
"returnCount": 3,
"pointIndices": [
423,
424,
425
],
"row": {
"byteOffset": 19717,
"byteLength": 46
}
},
"sourceRows": {
"point": "pulse-0459,2,3,-8.74469,9.412687,3.8,0.329574,5",
"pulse": "pulse-0459,11,8,-10.8,11.625,0.4625,retained,3"
}
}
```
Point **424** is the second of three returns from pulse **459**. It is not pulse 424. The pulse lists point indices `[423, 424, 425]`, and its source row places it at grid row 11, column 8: `11 × 41 + 8 = 459`.
Array indices and byte offsets start at zero. Return ordinals start at one. For these one-line CSV records, point index 424 is file line 426 when the header is line 1. Use the returned byte range for exact source access rather than assuming every CSV record occupies one text line.
The point's bytes occupy `[17948, 17995)` in `points.csv`; the pulse's bytes occupy `[19717, 19763)` in `pulses.csv`. Each range excludes the row terminator and retains the original cell formatting. `rangeM` is calculated from the stored coordinates and sensor origin, so it has no independent source column and does not imply a measured flight time.
The dependency-free `readLidarProducts` reader checks table content and geometry, but does not verify hashes or acquisition links. Prefer the decoded products returned by the successful evaluator when presenting checked data.
Pulses and returns [#pulses-and-returns]
A point's return number states its position within one pulse's return group. **First** and **last** are ordering labels, not surface classifications. A single return is both first and last.
In the selected group, two authored vegetation points precede one terrain point. Their heights are 6.2 m, 3.8 m and 0.4625 m in the local frame. The roof example has a single return classified as structure, so its last return is not terrain.
The [ASPRS LAS specification](https://lasformat.org/latest/02.00_definition.html#point-data-records) also keeps return number, number of returns, classification and intensity as distinct attributes. This profile uses its own declared class lookup; it does not claim LAS conformance or calibrated LAS intensity.
The viewer's first, last and class filters select retained rows. They do not generate a terrain surface or fill gaps. A selected point outside the current filter remains identified, so a display change does not silently substitute another source.
[Inspect this exact return group in the showcase](/showcase?surface=desk\&view=instruments\&workspace=bench\&benchFamily=survey\&variantDevice=lidar\&lidarPoint=424\&lidarPulse=459\&lidarView=oblique\&lidarColor=return\&lidarFilter=all).
Coverage and unavailable results [#coverage-and-unavailable-results]
Keep the three pulse states separate:
| Status | Return count | Meaning |
| ------------- | --------------------------------------- | ---------------------------------------------------- |
| `retained` | An integer from 1 to 15 | The complete group of declared returns is present. |
| `no_return` | `0` | A recorded result with zero detected returns. |
| `unavailable` | `null` in the reader; an empty CSV cell | The result is not retained, so its count is unknown. |
The runner's final report compares two actual rows:
```json title="Pulse availability"
{
"availability": [
{
"pulseIndex": 126,
"status": "no_return",
"returnCount": 0,
"pointIndices": [],
"sourceRow": "pulse-0126,3,3,-15.3,4.625,0.21,no_return,0"
},
{
"pulseIndex": 972,
"status": "unavailable",
"returnCount": null,
"pointIndices": [],
"sourceRow": "pulse-0972,23,29,8.1,22.125,1.145,unavailable,"
}
]
}
```
Both have an empty `pointIndices` array, but they mean different things. Preserve the trailing empty cell in the unavailable row. Converting it with `Number("")` would incorrectly produce zero.
A no-return result does not prove empty space. An unavailable result cannot be drawn as a zero-return measurement. The pulse register shows declared beam directions, not recovered surfaces or a physical coverage guarantee. Neither its aim coordinates nor missing cells should become interpolated points.
Coordinates and intensity [#coordinates-and-intensity]
The frame is right handed and local, in metres: x points toward illustrative east, y toward illustrative north and z upward. The fixed sensor is at `[0, 0, 18]`. No geographic datum, map location or pulse timestamps are supplied. Row-major order is an index, not a playback clock. The document's publication date does not date the pulses.
An aim coordinate defines a ray from the sensor. It is a direction reference, not necessarily a surface hit. Each retained point must lie forward along its pulse ray, within the declared spatial bounds and between 0.1 m and 60 m from the sensor.
`rayToleranceM: 0.00001` permits the small discrepancy introduced by storing decimal coordinates. It is an encoding-consistency tolerance, **not ten-micrometre survey accuracy**. Range is the three-dimensional Euclidean distance from the fixed sensor, not height above terrain. In the viewer, plan and elevation use equal axis scales; the orthographic oblique projection does not preserve all spatial distances on screen.
Intensity is an authored normalized return amplitude from 0 to 1. It is not calibrated reflectance, laser power, confidence or material identity. Codes 0, 2, 5 and 6 mean Unassigned, Terrain, Vegetation and Structure in this example's lookup. `classifications.authority: authored_annotations` declares how those labels were assigned; the evaluator checks membership in the lookup, not whether a surface was correctly identified.
The [USGS processing requirements](https://www.usgs.gov/ngp-standards-and-specifications/lidar-base-specification-data-processing-and-handling-requirements) treat point classification and geometric accuracy as separate quality concerns. A structurally valid label is not a validated classification.
3. Diagnose a failed check [#3-diagnose-a-failed-check]
Each flag changes only in-memory inputs. Use one at a time. Deliberate failures exit with status 1, leave the generated files untouched and stop before selected-point output. An unsupported flag or extra argument exits with usage status 2.
Withhold the pulse register [#withhold-the-pulse-register]
```sh
node check-lidar.mjs \
meridian/lidar-v1 \
--missing-pulses
```
The profile reports `sources: failed` and leaves semantics `not_checked`:
```json title="Missing-register issue"
{
"code": "LIDAR.SOURCE_BYTES",
"pointer": "/products",
"message": "Every retained source table is required for verification."
}
```
The additional source report has `external: not_checked` and an empty issue list. Missing bytes do not contradict a digest, but the point table alone cannot establish complete pulse coverage or the difference between zero and unknown results. An empty issue list alone is not a completed check.
Change a point without changing its digest [#change-a-point-without-changing-its-digest]
```sh
node check-lidar.mjs \
meridian/lidar-v1 \
--changed-points
```
This moves point 424 one metre along local x. File length stays unchanged, but its original digest no longer matches. Source checking fails before point geometry is inspected:
```json title="Changed-point issue"
{
"code": "LIDAR.SOURCE.EXTERNAL.DIGEST",
"pointer": "product:points",
"message": "Artifact digest differs."
}
```
The additional source report has `external: failed` with code `EXTERNAL.DIGEST`. Its pointer identifies the changed product.
Bind the changed point to matching digests [#bind-the-changed-point-to-matching-digests]
```sh
node check-lidar.mjs \
meridian/lidar-v1 \
--off-ray
```
This makes the same point change and updates its digest in the in-memory observation product, acquisition artifact and source layout. It deliberately creates consistent file declarations for inconsistent geometry. This is a controlled counterexample, not a repair for unexpected bytes.
`structure` and `sources` pass, but `semantics` fails:
```json title="Geometry issue"
{
"code": "LIDAR.CONTENT",
"pointer": "/products",
"message": "Point lies outside the declared range or pulse ray."
}
```
The changed point is still inside the range and coordinate bounds. It fails because it no longer lies on its pulse's declared ray. A matching hash cannot prove that coordinates and pulse geometry agree. Conversely, passing this geometric check cannot prove real-world accuracy.
Rerun without a flag to restore the passing result; no file restoration is needed.
Exact sources and reproduction [#exact-sources-and-reproduction]
This is a static discrete-return CSV profile, not a general lidar interchange format or LAS/LAZ decoder. It supplies no geographic registration, moving-platform trajectory, per-pulse time, waveform, beam footprint, atmospheric model or calibrated receiver response. Keep original provider files and any conversion process available separately rather than implying that these tables retain every instrument capability.
The [downloadable showcase](/examples/meridian.zip) includes this `lidar-v1` packet, its model and methods.
For exact definitions at this revision:
* [Profile schema](https://github.com/disclosurefoundation/disclosureos/blob/e19a89793871d23fb036e59c75ff83c86e21dfad/packages/disclosureos-schema/src/experimental/v2/lidar-profile-schema.ts): document references, coordinate frame, bounds and availability declarations.
* [Profile evaluator](https://github.com/disclosurefoundation/disclosureos/blob/e19a89793871d23fb036e59c75ff83c86e21dfad/packages/disclosureos-schema/src/experimental/v2/lidar-profile.ts): acquisition bindings, source integrity and result stages.
* [Source reader](https://github.com/disclosurefoundation/disclosureos/blob/e19a89793871d23fb036e59c75ff83c86e21dfad/packages/disclosureos-schema/src/experimental/v2/lidar-profile-reader.ts): CSV row spans, complete return groups and ray geometry.
The [shared equipment field reference](/v2/docs/reference/instruments) covers acquisition and measurement bindings, not this newer profile. Continue to [Satellite rasters](/v2/docs/satellite) for georeferenced image cells.
# Use observable terms (/v2/docs/observables)
Observables provide shared terms for characteristics that a report describes or an investigation examines. They do not replace the report, its measurements or a reviewer's assessment. An account can prompt a question even when no instrument data is available.
Choose a term before making a connection [#choose-a-term-before-making-a-connection]
Read the full definition and its qualifications. Then decide whether you are indexing a related question or declaring the exact characteristic that a reviewer assessed. Those are different relationships.
[Browse all 12 terms →](/v2/docs/reference/observables)
Six technology terms and six biologics terms. These groups organize research questions; they do not establish an origin.
Keep the three roles separate [#keep-the-three-roles-separate]
Record and instruments
What was reported or measured
{
"Original accounts, source files, measured quantities and the conditions of capture."
}
Observables
Which characteristic is relevant
{
"A shared definition, identified by its catalog, immutable revision and exact term ID."
}
Claims
What a reviewer assessed
{
"A stated question, subject, supporting inputs, method, outcome and attribution."
}
The example below connects a review of physical acceleration to **Abrupt Motion**. That term also covers apparent changes in motion. Recorded angles and a report of a rapid rise can make the term relevant without establishing physical acceleration. The retained review is `inconclusive`; the term itself has no outcome.
Start with an [observation record](/v2/docs/records) and the [claim history](/v2/docs/claims) it supports. Add [equipment and measurement links](/v2/docs/instruments) when instruments are involved. The vocabulary connection is a separate companion document, so its term does not become the claim's subject or supporting source.
Before you run [#before-you-run]
**These APIs are published in Beta 4.** You need Node.js 22 and npm. Create a project, or reuse the one from the other vocabulary guide:
```sh
mkdir disclosureos-vocabulary
cd disclosureos-vocabulary
npm init -y
npm install --save-exact @disclosureos/schema@2.0.0-beta.4 @disclosureos/observables@2.0.0-beta.4 @disclosureos/origins@2.0.0-beta.4
```
Keep the terminal in this project. The package version, catalog revision and document schema version identify different things.
The example files were generated from source revision `1b2ca8f43bd67cce9209cfa1b4c6f432a2607f01`. To inspect that historical implementation in a separate clone:
```sh
git checkout --detach 1b2ca8f43bd67cce9209cfa1b4c6f432a2607f01
```
This source pin preserves the fixture's provenance. It is not needed for the npm walkthrough.
1. Load the example documents [#1-load-the-example-documents]
Download the checker and five documents from the fictional DisclosureOS example case. Its source files use the name Meridian. The checker selects the existing `angular-motion` connection; it does not author a new assessment or change the retained files.
```sh
mkdir -p examples/observables-guide
for file in vocabulary-bindings.json observable-catalog.json history.json entities.json observation.json; do
curl --fail --location \
"https://os.disclosure.org/examples/meridian/vocabulary-v1/$file" \
--output "examples/observables-guide/$file"
done
curl --fail --location \
https://os.disclosure.org/examples/v2/observables/check-observables.mjs \
--output check-observables.mjs
```
| Document | Role |
| -------------------------- | --------------------------------------------------------------- |
| `observable-catalog.json` | The twelve definitions and their exact revision. |
| `vocabulary-bindings.json` | Attributed connections between catalog terms and claims. |
| `history.json` | The review, its subject, outcome, method and source references. |
| `entities.json` | Source editions and entities required by that history. |
| `observation.json` | The observation snapshot required by the entity document. |
The complete packet includes other observable and origin connections. This walkthrough selects one `about` binding, so it does not need the origin catalog. A check of a selected subset says nothing about declarations outside that subset.
2. Resolve the connection [#2-resolve-the-connection]
```sh
node check-observables.mjs examples/observables-guide
```
The [downloadable checker](/examples/v2/observables/check-observables.mjs) imports `evaluateVocabularyBindings` from `@disclosureos/schema/experimental/v2`, reads local files and maps each document's SHA-256 to its original bytes. It calls:
```js
const result = await evaluateVocabularyBindings(bindings, { documents });
```
Catalog identifiers and artifact URLs are not fetched. Supply the exact history dependencies as well as the catalog and history. Parse and inspect documents as needed, but retain their original bytes: reserializing equivalent JSON can change its digest.
The first report is:
```json title="Connection result"
{
"success": true,
"checks": {
"structural": "passed",
"semantic": "passed",
"profile": "passed",
"external": "not_checked"
},
"scientificValidity": "not_checked",
"authenticity": "not_checked",
"unresolvedReferences": [],
"issues": []
}
```
Only after success does the runner display the resolved term:
```json title="Resolved term"
{
"relation": "about",
"termId": "abrupt_motion",
"label": "Abrupt Motion"
}
```
[Inspect this question and its sources in the showcase](/showcase?surface=desk\&deskGroup=reviews\&view=assessments\&assessmentMode=observables\&catalogEntry=observable:abrupt_motion).
Interpret the result [#interpret-the-result]
| Check | What it establishes |
| ------------ | ---------------------------------------------------------------------------------------- |
| `structural` | The supplied binding documents have the required shape. |
| `semantic` | Local rules, such as valid times and unique connection IDs, pass. |
| `profile` | Required snapshots, term membership, attribution and relationships resolve consistently. |
| `external` | Remains `not_checked`. The evaluator does not fetch or authenticate outside sources. |
Read `success`, `checks.profile`, `issues` and `unresolvedReferences` together. Missing bytes leave the profile unchecked; supplied contradictory bytes or identities fail it. A known failure takes precedence over other unresolved inputs. Success requires all three applicable checks to pass.
A passing connection does not validate the catalog's science, reproduce a sensor analysis, authenticate a publisher or establish that a characteristic occurred. `scientificValidity` and `authenticity` remain `not_checked`; domain-profile checks also remain unchecked. JSON Schema validates structure, the vocabulary parsers add local rules, and the evaluator resolves documents and relationships.
Connecting a term to a claim [#connecting-a-term-to-a-claim]
Use the binding's `term` to identify the definition and its `claim` to identify the review. The [field reference](/v2/docs/reference/vocabulary) exposes all three objects: catalog snapshot, term reference and claim connections.
Exact connection used by this example
```json title="Retained connection"
{
"id": "angular-motion",
"recordedAt": "2026-10-13T12:00:00Z",
"assignedBy": "Meridian vocabulary review team (fictional)",
"rationale": "Index this specific research question under the relevant characteristic. This association is not an assessment that every aspect of the broader term is present or absent.",
"claim": {
"document": {
"documentId": "meridian-vocabulary-history-v1",
"schemaId": "urn:disclosureos:experimental:claim-history:0.4.0",
"sha256": "e940582da8325dd6f3d684f66afa6e32bba64efdf177712805849e395ff1a3e3"
},
"claimId": "angular-motion"
},
"relation": "about",
"term": {
"catalogId": "https://os.disclosure.org/vocabularies/observable-characteristics",
"revision": "2026-10-13.1",
"document": {
"documentId": "disclosureos-observables-v2",
"schemaId": "urn:disclosureos:experimental:vocabulary-catalog:0.1.0",
"sha256": "d3ee1987e75cacbc213ec3e3c64393a40169c7cb179b1fe87d5a903f2fc53182"
},
"termId": "abrupt_motion"
}
}
```
| Reference field | What to retain |
| --------------------- | ---------------------------------------------------------------------- |
| `catalogId` | The authority-qualified vocabulary identity, as an exact string. |
| `revision` | An immutable publication identifier. `latest` is rejected. |
| `document.documentId` | ID inside the retained catalog document. |
| `document.schemaId` | Its exact schema identifier, including the version. |
| `document.sha256` | SHA-256 of the retained document bytes. |
| `termId` | Exact term ID, such as `abrupt_motion`, rather than its label or code. |
The binding also retains `assignedBy`, `recordedAt` and `rationale`. Its recorded time cannot precede the target claim's recorded time. A history's free-text `topic` does not establish catalog membership.
Choose the relationship [#choose-the-relationship]
| Relationship | Use it when | Required boundary |
| ---------------------- | ------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| `about` | A statement or review concerns a term. | This is an attributed indexing choice. It does not declare occurrence or imply that the original source used the term. |
| `assessment_criterion` | The reviewer assesses the exact defined characteristic. | The target must be an assessed claim, and `assignedBy` must exactly match its `evaluatedBy`. |
This example uses `about` because its acceleration question is narrower than the complete Abrupt Motion definition. Do not convert it to `assessment_criterion` just to make the connection look stronger.
One claim can have several `about` associations, but only one distinct assessment criterion across supplied companion documents. Independent assessments of different characteristics need separate claims. When an assessed claim supersedes another, criterion continuity requires the same complete term reference along the affected chain. A new question needs a separate assessment.
Pass other selected companion documents through `additionalBindings` when checking them together. The evaluator cannot detect conflicting declarations withheld from the supplied set; your publisher must also preserve catalog revisions across submissions.
3. Diagnose an unresolved or failed connection [#3-diagnose-an-unresolved-or-failed-connection]
Use one flag at a time. These exercises change only in-memory inputs. A non-passing result exits with status 1 and stops before term output; unsupported arguments exit with status 2. Rerun without a flag to recover the original passing result.
Withhold the catalog [#withhold-the-catalog]
```sh
node check-observables.mjs examples/observables-guide \
--missing-catalog
```
Structure and local semantics still pass, but `profile` becomes `not_checked` and the catalog reference appears in `unresolvedReferences`. The issue code is `SNAPSHOT.UNAVAILABLE`, with status `not_checked`: a missing input is not a demonstrated contradiction. Do not render a resolved term or silently substitute a newer catalog.
Change the retained bytes [#change-the-retained-bytes]
```sh
node check-observables.mjs examples/observables-guide \
--changed-catalog
```
The checker appends one space to the in-memory catalog bytes without changing the reference digest. The JSON remains readable, but exact-byte verification fails. The issue code is `SNAPSHOT.DIGEST`. Matching parsed values cannot substitute for matching retained bytes.
Select a nonexistent term [#select-a-nonexistent-term]
```sh
node check-observables.mjs examples/observables-guide \
--unknown-term
```
The exact catalog resolves, but it does not contain `not_in_this_catalog`. The profile fails with `VOCABULARY.TERM`. A plausible label or a term in a different catalog revision cannot repair that reference.
Read the definitions [#read-the-definitions]
The [term reference](/v2/docs/reference/observables) includes each definition, scientific context, qualifications, detection signals, suggested methods and references. These are catalog guidance, not tests reported as completed in a case.
For application code, `ALL_OBSERVABLES` in `@disclosureos/observables` exposes the current package definitions. `createObservableCatalog` creates a snapshot from them, with your declared document ID, revision, publisher and publication time. It does not publish or authenticate that snapshot. Retain its bytes and use a new revision for changed content.
The shared catalog envelope stores observable-specific metadata in namespaced extensions. Use `readObservableTermDefinition` to validate and read that metadata; it returns `undefined` when metadata is unavailable or malformed. Do not assume that an arbitrary custom catalog term is an observable definition. The shared evaluator preserves extensions without validating their domain meaning.
Definition boundaries [#definition-boundaries]
A report, measured quantity and interpretation remain separate even when they use the same term. Apparent hover does not identify propulsion. An isotope-ratio departure needs a stated comparison and does not determine origin. An unresolved sequence does not establish non-terrestrial biology.
Retain the qualifications with the definition in your interface. Show a review outcome only where a review exists. In this packet, two observable questions have inconclusive reviews; the other ten terms have no assessment. Later instrument demonstrations are separate captures and cannot fill those reviews' source gaps.
Observable levels and claim outcomes [#observable-levels-and-claim-outcomes]
Two APIs use different vocabularies. Do not convert between them automatically:
| API | Values describe |
| ----------------------------- | ---------------------------------------------------------------------------------------------------------- |
| `ObservableClaim.level` | Declared support for a characteristic: `not_indicated`, `reported`, `documented`, `measured`, `confirmed`. |
| An assessed claim's `outcome` | The reviewer's result for a stated question: `reported`, `confirmed`, `absent`, `inconclusive`. |
Support levels [#support-levels]
| Level | Declared meaning |
| --------------- | -------------------------------------------------------------------------- |
| `not_indicated` | Nothing in the record indicates the characteristic is present. |
| `reported` | Testimony or a claim without supporting documentation. |
| `documented` | Written records, photographs or other contemporaneous documentation exist. |
| `measured` | Quantitative instrument data captured the relevant signal. |
| `confirmed` | Independent verification through peer review or replication. |
These are authored declarations, not levels assigned by a validator. A measured signal does not establish an anomalous capability. Optional confidence remains separate. An omitted assessment is not `not_indicated`, and an inconclusive review is not `absent`.
The example uses a claim history and makes no `ObservableClaim.level` declaration. The `score` function rejects nonempty descriptive observable assessments rather than treating these support levels as anomaly strength. See [claim shapes](/v2/docs/claims#three-claim-shapes) before choosing an assessment representation.
Follow the example reviews [#follow-the-example-reviews]
[Run the showcase vocabulary packet](/v2/docs/showcase#observable-and-origin-exploration) to inspect all five observable and origin reviews, their methods, exact source citations and validation receipt. The two observable questions address physical acceleration and comparable cross-sensor detection. Neither has a confirmed outcome.
Full catalog [#full-catalog]
[Search the complete term reference →](/v2/docs/reference/observables)
For implementation details at this source revision, read the [canonical vocabulary guide](https://github.com/disclosurefoundation/disclosureos/blob/1b2ca8f43bd67cce9209cfa1b4c6f432a2607f01/docs/experimental/vocabulary-references.md) and [definition review](https://github.com/disclosurefoundation/disclosureos/blob/1b2ca8f43bd67cce9209cfa1b4c6f432a2607f01/docs/rfcs/0007-vocabulary/definition-review.md). Continue to [Claims](/v2/docs/claims) to author the review itself.
# Review possible origins (/v2/docs/origins)
Origins supplies a vocabulary for possible explanations. A catalog entry names a hypothesis. A claim records what a reviewer concluded about it, for a stated subject and set of inputs. Selecting an entry does not identify the cause of an observation.
Find the explanation you mean [#find-the-explanation-you-mean]
Browse the Origin Classification System (OCS), then read the selected entry and its place in the hierarchy. Choose the narrowest entry your question actually addresses.
[Browse the 96 catalog entries →](/v2/docs/reference/origins)
The count includes three family roots and intermediate groups. Entries are not mutually exclusive or exhaustive causes, and their order does not imply likelihood.
Keep definition, review and outcome separate [#keep-definition-review-and-outcome-separate]
Origin term
Which explanation is proposed
{
"An exact catalog definition, its immutable revision and selected term ID."
}
Claim
What was reviewed
{
"The question, subject, supporting inputs, evaluator, method and reasoning."
}
Outcome
What the reviewer found
{
"An attributed result, which can remain inconclusive when necessary information is missing."
}
[Observables](/v2/docs/observables) names characteristics; Origins names possible explanations. A reported characteristic does not establish an origin. Both use the same [vocabulary fields](/v2/docs/reference/vocabulary) to connect a definition to a [claim](/v2/docs/claims). No second origin-specific binding format is needed.
The example below asks whether viewing conditions or an optical effect explain a reported light. It selects **Optical Artifact / Illusion** as the review's criterion. Its retained outcome is `inconclusive`, not a confirmation or exclusion of that explanation.
Before you run [#before-you-run]
**These APIs are published in Beta 4.** You need Node.js 22 and npm. Create a project, or reuse the one from the other vocabulary guide:
```sh
mkdir disclosureos-vocabulary
cd disclosureos-vocabulary
npm init -y
npm install --save-exact @disclosureos/schema@2.0.0-beta.4 @disclosureos/observables@2.0.0-beta.4 @disclosureos/origins@2.0.0-beta.4
```
Keep the terminal in this project. The package version, catalog revision and document schema version identify different things.
The example files were generated from source revision `1b2ca8f43bd67cce9209cfa1b4c6f432a2607f01`. To inspect that historical implementation in a separate clone:
```sh
git checkout --detach 1b2ca8f43bd67cce9209cfa1b4c6f432a2607f01
```
This source pin preserves the fixture's provenance. It is not needed for the npm walkthrough.
1. Load the example documents [#1-load-the-example-documents]
These documents come from the fictional DisclosureOS example case. Its retained filenames use Meridian. The checker selects the existing `optical-explanation` connection; it does not create or change a review.
```sh
mkdir -p examples/origins-guide
for file in vocabulary-bindings.json origin-catalog.json history.json entities.json observation.json; do
curl --fail --location \
"https://os.disclosure.org/examples/meridian/vocabulary-v1/$file" \
--output "examples/origins-guide/$file"
done
curl --fail --location \
https://os.disclosure.org/examples/v2/origins/check-origins.mjs \
--output check-origins.mjs
```
| Document | Role |
| -------------------------- | ---------------------------------------------------------------------- |
| `origin-catalog.json` | All 96 definitions and the retained catalog revision. |
| `vocabulary-bindings.json` | Attributed links from terms to reviews. |
| `history.json` | The review's question, subject, outcome, method and source references. |
| `entities.json` | Source editions and other entities required by the history. |
| `observation.json` | The observation snapshot required by the entity document. |
The packet uses archival claim history `0.4.0` because its inputs include edition references. The introductory Claims guide uses base history `0.1.0`. Supply the contract required by your subjects and inputs; changing a version label does not convert a document.
The checker supplies only one origin binding. The observable catalog is unnecessary for this selection. A passing subset does not validate the packet's other connections.
2. Resolve the selected explanation [#2-resolve-the-selected-explanation]
```sh
node check-origins.mjs examples/origins-guide
```
The [downloadable checker](/examples/v2/origins/check-origins.mjs) imports `evaluateVocabularyBindings` from `@disclosureos/schema/experimental/v2`. It maps each local document's SHA-256 to its original bytes, then calls:
```js
const result = await evaluateVocabularyBindings(bindings, { documents });
```
The evaluator does not fetch catalog URLs or artifact locations. Preserve original bytes rather than serializing parsed JSON again; equivalent JSON can have a different digest.
```json title="Connection result"
{
"success": true,
"checks": {
"structural": "passed",
"semantic": "passed",
"profile": "passed",
"external": "not_checked"
},
"scientificValidity": "not_checked",
"authenticity": "not_checked",
"unresolvedReferences": [],
"issues": []
}
```
Only after success does the checker display the resolved connection:
```json title="Resolved term"
{
"relation": "assessment_criterion",
"termId": "1.1.1.1.1",
"label": "Optical Artifact / Illusion",
"claimId": "optical-explanation"
}
```
[Read this review and its sources in the showcase](/showcase?surface=desk\&deskGroup=reviews\&view=assessments\&assessmentMode=origins\&catalogEntry=origin:1.1.1.1.1).
Connect an explanation to a review [#connect-an-explanation-to-a-review]
The term identifies a definition. The claim's subject identifies what is being reviewed, and its input references identify the supporting material. Keep all three roles separate.
Exact connection used by this example
```json title="Retained connection"
{
"id": "optical-explanation",
"recordedAt": "2026-10-13T12:00:00Z",
"assignedBy": "Meridian vocabulary review team (fictional)",
"rationale": "Declare the exact origin hypothesis addressed by this assessment; inclusion does not establish the proposed explanation.",
"claim": {
"document": {
"documentId": "meridian-vocabulary-history-v1",
"schemaId": "urn:disclosureos:experimental:claim-history:0.4.0",
"sha256": "e940582da8325dd6f3d684f66afa6e32bba64efdf177712805849e395ff1a3e3"
},
"claimId": "optical-explanation"
},
"relation": "assessment_criterion",
"term": {
"catalogId": "https://os.disclosure.org/vocabularies/origin-hypotheses",
"revision": "2026-10-13.1",
"document": {
"documentId": "disclosureos-origins-v2",
"schemaId": "urn:disclosureos:experimental:vocabulary-catalog:0.1.0",
"sha256": "e44bd2b61dd5fdbc3b807b2fa2df613498c93e7be0d873dbb8b1ff63db38921a"
},
"termId": "1.1.1.1.1"
}
}
```
Index a related question [#index-a-related-question]
Use `about` for an attributed association with a term. It helps readers find a related question without declaring that the original speaker used this terminology.
Declare the assessed explanation [#declare-the-assessed-explanation]
Use `assessment_criterion` for the exact hypothesis assessed by a reviewer. The claim must be assessed, and the binding's `assignedBy` must exactly match its `evaluatedBy`.
This example uses `assessment_criterion` because the question assesses that specific explanation. The matching identity strings are declarations, not proof of who performed the review.
A claim can have several `about` associations but only one distinct assessment criterion across the supplied binding documents. Different hypotheses need separate claims. Competing reviewers can retain separate reviews of the same term without either becoming authoritative. If an assessed claim replaces another, criterion continuity requires the same complete term reference along the affected revision chain.
Use `additionalBindings` to check other companion documents together. The evaluator cannot detect declarations you withhold. Your publisher must also preserve catalog revisions across submissions; a valid digest does not prevent an authority from incorrectly reusing a revision elsewhere.
3. Diagnose missing or contradictory inputs [#3-diagnose-missing-or-contradictory-inputs]
Use one flag at a time. These exercises change only in-memory inputs. A non-passing result exits with status 1 and stops before term output. Unsupported or combined flags exit with status 2. Running again without a flag restores the passing result without changing files.
Withhold the catalog [#withhold-the-catalog]
```sh
node check-origins.mjs examples/origins-guide \
--missing-catalog
```
Structure and local semantics pass, but `profile` becomes `not_checked`. The catalog appears in `unresolvedReferences`, with `SNAPSHOT.UNAVAILABLE`. Missing bytes are not a contradiction, and a newer catalog is not a substitute.
Change the catalog bytes [#change-the-catalog-bytes]
```sh
node check-origins.mjs examples/origins-guide \
--changed-catalog
```
The checker appends one space without changing the declared digest. JSON parsing still works; exact-byte verification fails with `SNAPSHOT.DIGEST` and `profile: failed`.
Change who assigned the criterion [#change-who-assigned-the-criterion]
```sh
node check-origins.mjs examples/origins-guide \
--changed-evaluator
```
The assigned reviewer no longer matches the claim's evaluator. Structure and local semantics pass, but the profile fails with `VOCABULARY.CRITERION_ATTRIBUTION`. A third party can make an attributed `about` association; it cannot declare an assessment criterion on someone else's behalf. This exercise does not alter the existing claim or its outcome.
What validation establishes [#what-validation-establishes]
| Stage | Scope |
| ------------ | -------------------------------------------------------------------------------- |
| `structural` | Required binding shapes and field types. |
| `semantic` | Local rules, including unique connection IDs and valid timestamps. |
| `profile` | Supplied snapshots, identities, revisions, term membership and connection rules. |
| `external` | Remains `not_checked`; outside sources are not fetched or authenticated. |
Read `success`, the individual stages, `issues` and `unresolvedReferences` together. Known contradictions take precedence over missing inputs. A successful connection needs all three applicable stages to pass.
This check does not run the review's method, verify that a hypothesis fits the source material, validate the scientific meaning of a definition or authenticate the author. Scientific validity and authenticity remain `not_checked`. The complete showcase packet has separate source-byte and edition checks; this walkthrough does not reproduce all of those checks.
Read the catalog [#read-the-catalog]
The package exports `OCS_TAXONOMY` and `OCS_PROVENANCE`. Each node retains the fields below; the [term reference](/v2/docs/reference/origins) lets you inspect every entry.
| Field | Meaning |
| ---------------------------- | ----------------------------------------------------------------------- |
| `id`, `label`, `description` | Stable term ID, display name and definition. Use the ID for references. |
| `domain` | `physical`, `psychosocial` or `metaphysical`. |
| `parentId`, `children` | Explicit parent and immediate child IDs. Root parents are `null`. |
| `depth` | Declared position in the tree. It is not a confidence or quality level. |
| `scientificallyTestable` | This framework's boolean designation for the selected entry. |
| `aliases` | Optional alternative names, useful for search. |
Use `getNode`, `getAncestors`, `getChildren` and `getSiblings` to navigate the package's definitions. Use explicit relationships rather than splitting a dotted identifier or inferring hierarchy from its label.
`createOriginCatalog` wraps the definitions in the shared vocabulary catalog with your document ID, immutable revision, publisher and publication time. It preserves OCS provenance in `extensions.org.disclosureos.origins`. It does not publish or authenticate the snapshot.
For a retained catalog, use `readOriginTermDefinition` to read a term's OCS metadata. It returns `undefined` when that metadata is missing or malformed. This shape check does not prove a custom catalog's full tree is reciprocal, complete or free of cycles. The shared vocabulary evaluator does not validate OCS extension semantics. The portal separately checks its retained snapshot against the complete canonical catalog.
The shared [catalog, term-reference and binding fields](/v2/docs/reference/vocabulary) apply to both Origins and Observables. There is one shared field reference, with the OCS-specific fields described here.
Hierarchy and scope [#hierarchy-and-scope]
Physical, Psychosocial and Metaphysical are organizing families, not a decision tree for selecting a cause. A result for one entry is not inherited by its parent, children or siblings. An inconclusive optical review does not increase support for an extraterrestrial explanation.
Read each entry's own `scientificallyTestable` value. A true value is a framework designation, not an operational test, scientific consensus, proof of feasibility or a completed investigation. A false value is not a negative case finding. Broad groups can contain entries with different designations; do not infer a value from an ancestor.
The OCS adapts **Col. Karl Nell's Proposed Taxonomy of UAP Origin Hypotheses**, presented at the Sol Foundation Symposium, Stanford University, in November 2023. Retain this attribution and the definitions' limits. The [public Origins page](/v2/origins) explains the framework for a general audience.
Follow the example reviews [#follow-the-example-reviews]
The retained packet contains three origin assessments, all inconclusive:
| Question | OCS entry |
| ---------------------------------------------------------------- | --------------------------------------- |
| Could viewing conditions or an optical effect explain the light? | `1.1.1.1.1` Optical Artifact / Illusion |
| Could a celestial or orbiting source explain the light? | `1.1.1.1.2` Celestial |
| Could a conventional human-operated source explain the light? | `1.1.1.2.4` Private / Commercial |
These are summaries of the questions; the showcase retains their exact wording and reasoning. The private/commercial review does not assess every human-source branch or identify an operator. All three omit confidence. Their outcomes are not equal probabilities, a ranking or support for the 93 other catalog entries. Later instrument demonstrations are separate captures and cannot fill these reviews' measurement gaps.
[Run the complete vocabulary packet](/v2/docs/showcase#observable-and-origin-exploration) to inspect those reviews, source citations and the retained validation receipt.
Confidence and other classification APIs [#confidence-and-other-classification-apis]
`OriginClaim` is a separate package API for an evaluator's primary hypothesis, required confidence and optional alternatives. It is not the claim-history format used in this guide and does not carry this immutable catalog reference. Do not assign a primary hypothesis or invent a confidence value to represent an unresolved review.
`createOriginClaim` checks node membership and confidence ranges. `createConfidenceDistribution` checks known nodes, rejects a total above one (allowing a small floating-point tolerance), and assigns the remainder to `unresolved`. These checks do not establish calibrated probabilities or make overlapping OCS categories mutually exclusive. Schema parsing alone does not perform the factory's sum check. Do not automatically convert review outcomes into numerical weights.
The example uses attributed claim histories and makes no `OriginClaim` or confidence-distribution declaration. Continue to [Scoring & checks](/v2/docs/assessment) for the distinction between evaluations and recorded validation.
Full catalog [#full-catalog]
[Search the complete term reference →](/v2/docs/reference/origins)
Read the pinned [vocabulary implementation guide](https://github.com/disclosurefoundation/disclosureos/blob/1b2ca8f43bd67cce9209cfa1b4c6f432a2607f01/docs/experimental/vocabulary-references.md) and [origin package source](https://github.com/disclosurefoundation/disclosureos/tree/1b2ca8f43bd67cce9209cfa1b4c6f432a2607f01/packages/disclosureos-origins/src) for the full API.
# Passive sonar profile (/v2/docs/passive-sonar)
A passive sonar recording contains received sound, with no transmitted ping. This profile connects a pressure waveform to its frequency analysis and preserves which samples were available for each calculation.
You will reproduce eight seconds of fictional sound, validate the source files, inspect a spectral bin and its input window, then diagnose three failures. A passing check establishes consistency with the declared calculation. It does not locate or identify a sound source.
Profile status [#profile-status]
**Published in npm `2.0.0-beta.4`.** The profile evaluators and readers are available through `@disclosureos/schema/experimental/v2`. The retained source revision below is only needed to regenerate this example.
[Equipment and captures](/v2/docs/instruments) explains the shared equipment model. This optional profile combines an observation, acquisition context and source selection with a declared pressure-to-spectrum calculation. It does not require a scalar measurement binding or claim history.
1. Open the published-package example [#1-open-the-published-package-example]
**Requirements:** Node.js 22, npm and a ZIP extractor. Create a local project and install the published API:
```sh
mkdir disclosureos-passive-sonar-beta4
cd disclosureos-passive-sonar-beta4
npm init -y
npm install --save-exact @disclosureos/schema@2.0.0-beta.4
curl --fail --location https://os.disclosure.org/examples/meridian.zip --output meridian.zip
unzip meridian.zip
curl --fail --location https://os.disclosure.org/examples/v2/passive-sonar/check-passive-sonar.mjs --output check-passive-sonar.mjs
node check-passive-sonar.mjs meridian/sonar-passive-v1
```
The download contains the full fictional example case. This guide uses only `meridian/sonar-passive-v1`. Keep the terminal in this npm project for the checks below. The displayed profile and selected-value results are explained in the following sections.
Use a **separate terminal and directory** for this reproduction. It regenerates the retained fixture; it is not required to install or use the published profile APIs. Return to the npm project above for the rest of this guide.
Reproduce a pressure capture [#reproduce-a-pressure-capture]
**Requirements:** Node.js 22, Git and pnpm 9.15.0. Start in a separate directory, then run:
```sh
git clone https://github.com/disclosurefoundation/disclosureos.git disclosureos-passive-sonar
cd disclosureos-passive-sonar
git checkout --detach e19a89793871d23fb036e59c75ff83c86e21dfad
corepack pnpm install --frozen-lockfile
corepack pnpm --workspace-concurrency=1 \
--filter "@disclosureos/schema..." build
node examples/sonar-passive/build.mjs
node examples/sonar-passive/verify.mjs
```
If you already built the Radar or Active sonar guide at this exact revision, reuse that checkout and run the last two commands.
The build writes `examples/sonar-passive/generated/`. The verifier regenerates every file, compares the retained bytes, evaluates the profile and inspects every pressure sample and spectral cell. Its output is:
```json title="Reproduction result"
{
"success": true,
"files": 12,
"pressureSamples": 32768,
"spectralCells": 65021,
"retainedFrames": 237,
"unavailableFrames": 16,
"reproduction": "passed",
"physicalCalibration": "not_performed"
}
```
A **frame** is one analysis window, with a spectrum calculated from its pressure samples. The 253 windows each contain 257 spectral bins. `spectralCells` counts all storage positions, including unavailable windows. Calibration was not performed in this synthetic experiment.
Run the independent numerical checks:
```sh
node --test examples/sonar-passive/model.test.mjs
```
These compare the Fourier calculation with an independent direct calculation and check windowed energy, missing values and frequency-endpoint scaling.
[Explore the same passive sonar example](/v2/instruments?recording=survey\&example=sonar-passive). Select a point in the spectrogram to see its spectrum, input waveform and source offsets.
What the profile describes [#what-the-profile-describes]
The profile describes a single hydrophone channel, its pressure samples and a derived **power spectral density (PSD)**: how the pressure signal's mean-square content is distributed by frequency. It declares the sample clock, analysis window, window spacing, units and availability rules.
Four connected documents [#four-connected-documents]
| Document | What it provides |
| ---------------------------- | ----------------------------------------------------------------------------------------------- |
| `observation.json` | Sources, raw and derived products, the analysis method and its processing activity. |
| `acquisition.json` | Equipment, pinned configuration, pressure channel, capture interval and raw artifacts. |
| `source-selection.json` | Array axes, units, storage layout, byte lengths and digests. |
| `passive-sonar-profile.json` | References to those documents, product roles, exact sample timing and the spectral calculation. |
The profile selects `acquisition:passive-capture` and channel `pressure`, whose declared quantity is `sound_pressure` with unit `Pa`. Its two acquisition-product references select the raw pressure and sample mask. The four entries in `products` select observation products and their source layouts.
`processingRef` selects `process:windowed-psd`. That activity must consume exactly the pressure and sample mask, produce the spectral density and frame mask, and use the declared method version. Both outputs must be marked as derived from that activity. Matching filenames alone cannot establish those connections.
Four source arrays [#four-source-arrays]
| File | Stored values | Role |
| ---------------------------- | ---------------------------------- | --------------------------------------------------------------- |
| `pressure.f32` | 32,768 float32 values in Pa | Received pressure, sampled at 4,096 Hz. |
| `sample-mask.u8` | 32,768 uint8 values | `1` for a retained pressure sample; `0` for an unavailable one. |
| `power-spectral-density.f32` | 253 × 257 float32 values in Pa²/Hz | Derived spectra in row-major `[window, frequency bin]` order. |
| `frame-mask.u8` | 253 uint8 values | `1` only when every input sample in that window is retained. |
Float32 values are little-endian. Missing pressure and density slots store zero placeholders. Consult their masks before treating those slots as values. `methods.json` and `model.mjs` retain the authored calculation; `index.json` is a convenience file index, not another standard contract.
2. Validate files and inspect a window [#2-validate-files-and-inspect-a-window]
To use the public API separately from fixture reproduction, download the check script. Save it as `check-passive-sonar.mjs` in your npm project so it uses the installed Beta 4 package.
From your npm project, run:
```sh
node check-passive-sonar.mjs \
meridian/sonar-passive-v1
```
The script imports the evaluator and readers from `@disclosureos/schema/experimental/v2`. It loads the four documents and all four local arrays, then calls:
```js
const result = await evaluatePassiveSonarProfile(
observation,
context,
selection,
profile,
{ assets },
);
```
`assets` maps each layout's `productRef` to complete file bytes, such as `product:pressure` or `product:powerSpectralDensity`. It is not keyed by filename or sample index. The runner uses the example index to locate files and does not fetch artifact URLs.
The first report is:
```json title="Profile result"
{
"success": true,
"checks": {
"structure": "passed",
"sources": "passed",
"semantics": "passed",
"reproduction": "passed"
},
"scientific": "not_checked",
"physicalCalibration": "not_checked",
"localization": "not_checked",
"issues": []
}
```
| Check | Meaning |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| `structure` | All four inputs satisfy their prerequisite contracts. |
| `sources` | Source selections and retained bytes pass their checks, including lengths and digests. |
| `semantics` | Document bindings, method ancestry, time bounds, axes, units and availability rules satisfy the profile. |
| `reproduction` | The decoded products pass content checks and the retained spectra reproduce from the pressure samples within the profile's tolerance. |
The evaluator reports `physicalCalibration: not_checked`; the synthetic fixture reports calibration `not_performed`. Neither result establishes measured pressure accuracy, source location or scientific validity. A content failure can mark both `semantics` and `reproduction` failed, so read the issue message as well as the stage names.
Only after success, the runner reads a pressure sample and a spectral bin from the validated products:
```js
const products = result.data.products;
const sample = readPassiveSonarSample(profile, products, 4096);
const spectrum = readPassiveSonarBin(profile, products, 32, 28);
```
Indices are zero-based. The complete reader result is:
```json title="Selected window"
{
"sample": {
"sample": 4096,
"timeOffsetSeconds": 1,
"pressureByteOffset": 16384,
"sampleMaskByteOffset": 4096,
"available": true,
"pressure": 0.00024411342747043818
},
"spectrum": {
"frame": 32,
"bin": 28,
"frequencyHz": 224,
"timeOffsetSeconds": 1,
"centerOffsetSeconds": 1.0625,
"startSample": 4096,
"endSampleExclusive": 4608,
"lastSampleOffsetSeconds": 1.124755859375,
"endOffsetSeconds": 1.125,
"pressureByteOffset": 16384,
"pressureByteLength": 2048,
"sampleMaskByteOffset": 4096,
"sampleMaskByteLength": 512,
"densityByteOffset": 33008,
"frameMaskByteOffset": 32,
"available": true,
"density": 8.551504748766092e-8,
"densityDb": 49.32042541229472
}
}
```
The 224 Hz bin uses **all 512 input samples**, from 4096 through 4607, not just sample 4096. Its half-open input interval is `[1, 1.125)` seconds after `2026-07-28T22:15:00Z`. The final sample is at 1.124755859375 seconds; the window center is 1.0625 seconds. The spectrogram places the window at its start time.
The pressure byte range is `[16384, 18432)` in `pressure.f32`. The selected density occupies four bytes at offset `(32 × 257 + 28) × 4 = 33008` in its own file. The two mask offsets point into separate files too.
The dependency-free readers do not check hashes or acquisition lineage. Use `evaluatePassiveSonarProfile` before presenting their output as checked source data. Keep exact sample/rate offsets even when a clock label rounds to milliseconds.
From pressure to frequency [#from-pressure-to-frequency]
Each window contains 512 samples, spanning 125 milliseconds. The next begins 128 samples later, a 31.25 millisecond step. Windows overlap by 75%. Their 257 bins run from 0 to 2,048 Hz in 8 Hz steps.
For each complete window, the declared calculation:
1. Removes the arithmetic mean from the input samples.
2. Applies a periodic Hann window: `w[n] = 0.5 − 0.5 cos(2πn / 512)`.
3. Computes the discrete Fourier transform without zero padding.
4. Divides squared magnitude by sample rate × sum of squared window weights.
5. Doubles the interior positive-frequency bins, leaving DC and Nyquist undoubled.
The stored result is float32 Pa²/Hz. The evaluator recomputes it from the retained pressure bytes and permits an absolute difference up to `max(1e-25, abs(expected) × 1e-5)` per bin. That is a numerical comparison tolerance, not physical measurement uncertainty. The independent model tests also check the calculation against a direct Fourier transform.
These conventions correspond to SciPy's [density-scaled periodogram](https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.periodogram.html) with a [periodic Hann window](https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.windows.hann.html), for which `sym=False`. This example calculates each window separately; it does not average them into a single spectrum.
The viewer converts density for display using:
```text
10 × log10(density / 10⁻¹² Pa²/Hz)
```
The label is **dB re 1 μPa²/Hz**. It is spectral density, not broadband sound pressure level. Display limits affect only the drawing; exact linear values remain available. A retained zero density converts to negative infinity. A missing density remains `null`. JSON cannot encode infinity, so a client exporting logarithmic values must preserve zero-versus-missing status explicitly rather than relying on `JSON.stringify` alone.
Neither 8 Hz frequency spacing nor 31.25 millisecond window spacing establishes physical resolution or the ability to separate nearby sources. The final pressure sample is at 7.999755859375 seconds; nominal capture duration is 8 seconds.
Missing samples and exact windows [#missing-samples-and-exact-windows]
**Missing pressure is not silence.** Mask `0` marks a storage placeholder. If any input sample is missing, the entire window's spectrum is unavailable, even if the missing sample would have zero Hann weight. The profile does not interpolate gaps or substitute a shorter window.
The runner's final report demonstrates the distinction:
```json title="Incomplete window"
{
"gap": {
"firstSample": 12416,
"firstSampleAvailable": true,
"missingSample": 12800,
"missingPressure": null,
"frame": 97,
"startSample": 12416,
"endSampleExclusive": 12928,
"windowAvailable": false,
"density": null,
"densityDb": null
}
}
```
The first sample is retained, but later samples in that same window are missing. Its pressure samples remain individually inspectable; its spectrum does not. Show a gap in the spectrogram, not a quiet band.
This fixture omits pressure indices `[12800, 13824)` and `[25600, 25856)`: 1,280 samples in total. Because windows overlap, those omissions make 16 spectra unavailable. A wider gap in the spectrogram does not imply a longer physical interruption.
3. Diagnose a failed check [#3-diagnose-a-failed-check]
Each flag changes only in-memory inputs. Use one at a time. Deliberate failures exit with status 1, leave all generated files untouched and stop before selected-sample output. An unsupported flag or extra argument exits with usage status 2.
Withhold the pressure file [#withhold-the-pressure-file]
```sh
node check-passive-sonar.mjs \
meridian/sonar-passive-v1 \
--missing-pressure
```
The profile reports `sources: failed`; semantics and reproduction remain `not_checked`:
```json title="Missing-pressure issue"
{
"code": "PASSIVE_SONAR.SOURCE_BYTES",
"pointer": "/products",
"message": "Every retained source product is required for verification."
}
```
The additional source report leaves `external: not_checked` and has no source issue. Missing bytes do not contradict a digest, but the saved spectra cannot be reproduced without their pressure input. An empty issue list alone is not a completed check.
Change spectral bytes without changing their digest [#change-spectral-bytes-without-changing-their-digest]
```sh
node check-passive-sonar.mjs \
meridian/sonar-passive-v1 \
--changed-spectrum
```
Source checking fails before reproduction starts:
```json title="Changed-byte issue"
{
"code": "PASSIVE_SONAR.SOURCE.EXTERNAL.DIGEST",
"pointer": "product:powerSpectralDensity",
"message": "Artifact digest differs."
}
```
The additional source report has `external: failed` and code `EXTERNAL.DIGEST`. Its pointer identifies the changed product.
Supply a matching digest for an incorrect spectrum [#supply-a-matching-digest-for-an-incorrect-spectrum]
```sh
node check-passive-sonar.mjs \
meridian/sonar-passive-v1 \
--unreproducible-spectrum
```
This controlled exercise sets spectral cell `[32, 28]` to zero and updates its digest in both the in-memory observation and source layout. It deliberately creates a file that matches its declared hash but contradicts its inputs. This is a demonstration, not a repair for unexpected bytes.
`structure` and `sources` pass. Both `semantics` and `reproduction` fail:
```json title="Reproduction issue"
{
"code": "PASSIVE_SONAR.CONTENT",
"pointer": "/products",
"message": "Spectral cell 32/28 does not reproduce from its retained pressure window."
}
```
A matching hash establishes consistency with the declared bytes. It cannot prove that a derived result was calculated correctly. Rerun without a flag to restore the passing result; no file restoration is needed.
Scope and reproduction [#scope-and-reproduction]
This fixture is an authored single-hydrophone signal in pascals, not a calibrated field recording or partner dataset. It combines a tone, harmonic, changing frequency, transient and deterministic background. Those labels describe numerical components, not detected source identities.
The profile supplies no bearing, range, beamformed array product, hydrophone response or propagation model. Unlike [Active sonar](/v2/docs/sonar), it has no transmitted ping and no automatic delay-to-distance conversion. `raw` identifies the retained input product, not a claim about physical calibration.
The [example case](/showcase?surface=desk\&view=instruments\&workspace=bench\&benchFamily=survey\&variantDevice=sonar-passive) includes the same `sonar-passive-v1` packet in its download.
For exact definitions at this revision:
* [Profile schema](https://github.com/disclosurefoundation/disclosureos/blob/e19a89793871d23fb036e59c75ff83c86e21dfad/packages/disclosureos-schema/src/experimental/v2/passive-sonar-profile-schema.ts): product roles, clock and calculation settings.
* [Profile evaluator](https://github.com/disclosurefoundation/disclosureos/blob/e19a89793871d23fb036e59c75ff83c86e21dfad/packages/disclosureos-schema/src/experimental/v2/passive-sonar-profile.ts): bindings, lineage, integrity and result stages.
* [Source reader](https://github.com/disclosurefoundation/disclosureos/blob/e19a89793871d23fb036e59c75ff83c86e21dfad/packages/disclosureos-schema/src/experimental/v2/passive-sonar-profile-reader.ts): input ranges, masks and spectral reproduction.
The [shared equipment field reference](/v2/docs/reference/instruments) covers acquisition and measurement bindings, not this newer profile. Continue to [Lidar point clouds](/v2/docs/lidar) for a different source geometry.
# Materials and laboratory (/v2/docs/physical-samples)
A specimen is a physical object. A laboratory result describes an analysis of a particular specimen or portion. The report is a separate source file, and a review records what someone concludes from it. Keep those identities connected without treating them as interchangeable.
This guide follows a fictional parent sample split into two portions. Only portion A is analyzed. You will check the saved documents, inspect three forms of result and try assigning one to the untested portion B.
**Choose the workflow you need:**
| Task | Availability | Start here |
| ------------------------------------------------------------------------- | ---------------------------------------------- | -------------------------------------------------------- |
| Describe specimens, preparation, analyses, results and attributed reviews | Published in npm `2.0.0-beta.4` | [Laboratory walkthrough](#1-run-the-laboratory-example) |
| Check collected-specimen handoff declarations and cited record bytes | Published profile, using claim history `0.1.0` | [Source and custody check](#run-the-published-evaluator) |
These are separate checks. The laboratory evaluator can resolve a saved specimen selection, but does not run the collected-specimen profile. Its `claim_history` version `0.5.0` cannot be substituted for the profile's history `0.1.0`.
1. Run the laboratory example [#1-run-the-laboratory-example]
**Requirements:** Node.js 22 and npm. Install the published APIs, then download the five files from the [retained example revision](https://github.com/disclosurefoundation/disclosureos/tree/5a686c14b002aacb614a505ba74217f73fff63dc/examples/v2/laboratory-review-demo):
```sh
mkdir disclosureos-laboratory-beta4
cd disclosureos-laboratory-beta4
npm init -y
npm install --save-exact @disclosureos/records@2.0.0-beta.4 @disclosureos/schema@2.0.0-beta.4
for file in observation.json entities.json selection.json history.json run.mjs; do
curl --fail --location \
"https://raw.githubusercontent.com/disclosurefoundation/disclosureos/5a686c14b002aacb614a505ba74217f73fff63dc/examples/v2/laboratory-review-demo/$file" \
--output "$file" || break
done
node run.mjs
```
The field reference retains the example's source identity. To inspect that implementation in a separate checkout, use Git and pnpm 9.15.0:
```sh
git clone https://github.com/disclosurefoundation/disclosureos.git disclosureos-materials
cd disclosureos-materials
git checkout --detach 5a686c14b002aacb614a505ba74217f73fff63dc
pnpm install --frozen-lockfile
pnpm --workspace-concurrency=1 --filter "@disclosureos/schema..." build
node examples/v2/laboratory-review-demo/run.mjs
```
Return to your npm project for the remaining steps. The four input documents are the same; Beta 4 supplies the parsers and evaluator.
The runner prints a full report. Read these fields first:
```json
{
"success": true,
"checks": {
"structural": "passed",
"semantic": "passed",
"profile": "not_checked",
"external": "passed"
},
"sourceArtifactIntegrity": "not_checked",
"scientificInterpretation": "not_checked"
}
```
The supplied JSON snapshots and their connections pass. **The source reports and physical specimens have not been verified.** The example includes report declarations with a placeholder digest, not report bytes. Do not reuse that digest for a real file.
| File | What it holds |
| ------------------ | ------------------------------------------------------------------------------------------ |
| `observation.json` | Sources, methods and a numerical measurement with its unit and uncertainty state. |
| `entities.json` | The parent sample, two portions, preparation, custody actions, analysis and three results. |
| `selection.json` | Selected specimen and handoff declarations referenced by the parent sample. |
| `history.json` | The embedded observation, exact snapshot references, source wording and a separate review. |
To use the APIs yourself, save this as `check-laboratory.mjs` in your npm project:
```js title="check-laboratory.mjs"
import { readFileSync } from "node:fs";
import { createHash } from "node:crypto";
import {
parseLaboratoryEntities,
parseLaboratoryClaimHistory,
} from "@disclosureos/records/experimental/v2";
import { evaluateLaboratoryClaimHistory } from "@disclosureos/schema/experimental/v2";
const read = (name) => readFileSync(name);
const entities = JSON.parse(read("entities.json").toString("utf8"));
const history = JSON.parse(read("history.json").toString("utf8"));
const local = [
parseLaboratoryEntities(entities),
parseLaboratoryClaimHistory(history),
];
if (local.some((result) => !result.success)) {
console.error(
JSON.stringify(
local.map((result) => result.issues),
null,
2
)
);
process.exitCode = 1;
} else {
const documents = new Map(
["observation.json", "entities.json", "selection.json"].map((name) => {
const bytes = read(name);
return [createHash("sha256").update(bytes).digest("hex"), bytes];
})
);
const result = await evaluateLaboratoryClaimHistory(history, { documents });
console.log(
JSON.stringify(
{
success: result.success,
checks: result.checks,
sourceArtifactIntegrity: result.sourceArtifactIntegrity,
scientificInterpretation: result.scientificInterpretation,
},
null,
2
)
);
if (!result.success) {
console.error(JSON.stringify(result.issues, null, 2));
process.exitCode = 1;
}
}
```
Run `node check-laboratory.mjs`. It prints the compact result above. Local parsers check document structure and local relationships. The evaluator additionally checks supplied snapshot bytes, identities and connections, including selected specimen and transfer references. It does not fetch URLs or inspect report contents.
2. Follow the tested portion [#2-follow-the-tested-portion]
Open `entities.json`. The preparation `split` connects the parent to both resulting portions:
| Entry | Connection | Result scope |
| ----------- | ---------------------------------------------------------- | -------------------------------------------- |
| `parent` | Collected specimen and input to `split` | No laboratory results assigned |
| `aliquot-a` | Derived portion produced by `split`; input to `analysis-a` | Three results explicitly assigned |
| `aliquot-b` | Another portion produced by `split` | No analysis or results assigned |
| `trace` | Separately described trace | Not a collected specimen or a tested portion |
Each `laboratory_result` names both `analysisId` and `materialId`. The analysis lists its `inputMaterialIds` and `resultIds`. These connections must agree. A result for A does not automatically describe the parent, B or the trace.
An aliquot is a portion taken from a larger sample. The example records a split, not proof that either portion represents the whole. The parent's handling declarations also do not fill the explicit custody gap for A after preparation.
3. Try assigning a result to the wrong portion [#3-try-assigning-a-result-to-the-wrong-portion]
Save this as `break-result-scope.mjs` in the same folder. It changes only the in-memory copy:
```js title="break-result-scope.mjs"
import { readFileSync } from "node:fs";
import { parseLaboratoryEntities } from "@disclosureos/records/experimental/v2";
const entities = JSON.parse(readFileSync("entities.json", "utf8"));
const resultEntry = entities.entities.find((entity) => entity.id === "numeric");
resultEntry.materialId = "aliquot-b";
const result = parseLaboratoryEntities(entities);
console.log(
JSON.stringify({ success: result.success, issues: result.issues }, null, 2)
);
if (!result.success) process.exitCode = 1;
```
Run `node break-result-scope.mjs`. It exits with status 1 and prints:
```json
{
"success": false,
"issues": [
{
"code": "LAB.RESULT_SCOPE",
"pointer": "/entities/9",
"message": "A result must belong to its analysis and one exact input specimen; parent and sibling results are not interchangeable.",
"stage": "semantic"
}
]
}
```
B exists, but is not an input to this analysis. That is a relationship error, not an invalid ID format. Run `node check-laboratory.mjs` again to confirm the original files still pass.
Describe materials and preparation [#describe-materials-and-preparation]
Use `research_entities` version `0.4.0` for laboratory records. Its [field reference](/v2/docs/reference/materials) leads with six material and laboratory types and retains the shared witness and document types.
| Entity | Use it for |
| ------------------------- | ------------------------------------------------------------------------------------------- |
| `material_trace` | A reported mark or effect, including one that was never sampled. |
| `material` | A specimen's label, descriptions, collection, storage and declared lineage. |
| `material_preparation` | A split, extraction, mixture or other preparation connecting input and output specimens. |
| `material_custody_action` | A specimen's handling action, predecessor or explicitly unknown earlier history. |
| `laboratory_analysis` | Tested specimens, preparation references, method, laboratory, operators and linked results. |
| `laboratory_result` | One analysis's result for one input specimen, with supporting report references. |
To assemble your own document:
1. Put sources, methods and numerical measurements in the [Observation inventory](/v2/docs/records). Preserve real access declarations and available file digests.
2. Reference the exact observation snapshot from `observationRef`. Include `contextRefs` when declarations use event or setting records.
3. Assign a distinct material ID to each portion you need to describe. Record lineage and preparation inputs and outputs explicitly. Keep a reported trace separate from a collected object.
4. Record handling actions for the relevant specimen. Use predecessor links to express the declared sequence, including gaps. Array position is not the declared custody order.
5. Add an analysis with its tested material IDs, preparation IDs and explicit result IDs. An empty result list can describe reported analytical work with no supplied results.
6. Give each result its analysis and exact tested specimen. Add source citations, keeping report contents separate from your review.
Fields retain attributed assertions and missing-information states. Conflicting source descriptions can coexist; the parser does not choose a preferred account. When you change saved snapshot bytes, update the references that identify those bytes instead of retaining their old digest.
Preserve what the laboratory reported [#preserve-what-the-laboratory-reported]
The three result forms convey different information:
| Form | Fictional example | How to represent it |
| -------------- | --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| `quantitative` | `1.25 mg/kg`; uncertainty not reported | Reference the Observation measurement with `measurementId`. Declare a reported limit, an unknown limit or a reason it does not apply. |
| `below_limit` | Below a reported detection threshold of `0.1 mg/kg` | Retain the threshold, unit, limit kind and basis. This is not a measurement of zero. |
| `qualitative` | “Gray particulate matter observed.” | Preserve the report's wording without inventing a numerical value. |
The evaluator checks measurement references and requires an explicitly reported quantitative limit's unit to match the referenced measurement's unit. It does not convert units, establish method performance or infer scientific significance. Unknown uncertainty remains unknown.
Use `claim_history` version `0.5.0` for the connected review. `reportedMaterialReview` preserves source wording about quality or origin. A separate assessment's `materialReview` records the reviewer's findings, limitations and selected inputs. In this example the reviewer keeps the outcome `inconclusive` because uncertainty and aliquot custody are incomplete. That review is distinct from the source's “field collected” description.
Run the published evaluator [#run-the-published-evaluator]
For a collected-specimen source-and-custody check, use the separate [synthetic provenance download](/v2/docs/provenance-examples). Extract it into a different folder and follow its installation instructions. That archive pins npm `2.0.0-beta.4`. Do not pass the laboratory history into it.
Save this as `check-custody.mjs` in the extracted `provenance` folder, then run `node check-custody.mjs`:
```js title="check-custody.mjs"
import { readFileSync } from "node:fs";
import { evaluatePhysicalSamples } from "@disclosureos/schema/experimental/v2";
const read = (name) => readFileSync(`physical-samples/${name}`);
const result = await evaluatePhysicalSamples(
JSON.parse(read("history.json").toString("utf8")),
JSON.parse(read("selection.json").toString("utf8")),
{ assets: new Map([["source:report", new Uint8Array(read("custody.txt"))]]) }
);
console.log(result.samples, result.checks, result.custodyAuthenticity);
```
The supplied example passes `structural`, `semantic`, `profile` and `external`. `custodyAuthenticity` remains `not_checked`. The shared exercise provides the runnable JavaScript runner and complete output.
Describe the selection [#describe-the-selection]
The [sample-provenance reference](/v2/docs/reference/materials#physical-samples) describes `physical_sample_selection` version `0.1.0`. Each entry has a local `id`, lineage, label, collection declaration, custody declaration and current custodian. Known collection and holder declarations cite a `recordRef`; unknown declarations retain a reason. `catalogIdentifier` is optional.
The schema export is `@disclosureos/schema/experimental/v2/physical-samples/schema`. Its identifier is `urn:disclosureos:experimental:physical-sample-selection:0.1.0`.
Derived samples and mixtures can be represented but fail this collected-specimen profile's applicability. Do not relabel a processed sample to obtain a pass.
What custody continuity means here [#what-custody-continuity-means-here]
Here, the transfer array is the declared handoff sequence. Each entry names an ID, `from`, `to` and `recordRef`. The first sender must match the collector, each subsequent sender the previous recipient, and the final recipient the current custodian. Matching uses exact strings. Self-transfers fail; a connected return is allowed.
A documented empty transfer list can pass when collector and current holder agree. It must not replace missing history: use unknown custody for that. With incomplete endpoints, a conflict-free sequence remains unchecked. This profile has no transfer timestamps; it cannot establish chronology. Collection time and place must not be inferred from observation metadata.
Check the records, preserve the limits [#check-the-records-preserve-the-limits]
Each cited record must resolve to a source in the history with a declared SHA-256 digest. Supply the nonempty local bytes under its source reference. The evaluator compares bytes; it neither fetches URLs nor reads the record to establish its meaning.
Missing required declarations, conflicting handoffs and mismatching bytes fail. Unavailable bytes leave an otherwise eligible profile unchecked. Reusing one source does not create independent corroboration.
Neither workflow certifies physical identity, actual custody, complete chronology, contamination control, composition or origin. A passing check does not establish scientific eligibility, assessment support or redistribution rights. Access labels do not remove private information from your records; review what you publish separately.
Field reference [#field-reference]
* [Material and laboratory fields](/v2/docs/reference/materials): choose Specimens & laboratory, Sources & reviews or Sample provenance, then search within that document. All three are published in Beta 4. Sample provenance uses a separate collected-specimen profile.
* [Explore materials in the showcase](/showcase?surface=desk\&deskGroup=materials\&view=materials): inspect the fuller fictional example case. Its source packet is separate from this focused laboratory exercise; use the [showcase implementation guide](/v2/docs/showcase) to reproduce that packet.
# Check sources and custody (/v2/docs/provenance-examples)
[Download the examples](/examples/v2/provenance.zip). The archive contains three complete workflows, each with a claim history, a selection and a small source file. All people, institutions, specimens and events are fictional. No ELDÆON data is included.
Run locally [#run-locally]
Unzip the archive and open the `provenance` folder. With Node.js 22 or newer:
```sh
npm install --ignore-scripts
npm start
```
Or run one workflow:
```sh
npm run documents
npm run testimony
npm run physical-samples
```
The runner imports the published `2.0.0-beta.4` evaluators. It supplies actual local bytes and prints each result's checks and every explicit interpretation limit. No source URL is fetched by an evaluator.
Expected results and their meaning [#expected-results-and-their-meaning]
All three examples return `success: true` with these checks:
```json
{
"structural": "passed",
"semantic": "passed",
"profile": "passed",
"external": "passed"
}
```
**For these profiles, external means selected source-file integrity.** A pass says the supplied bytes match their declared digests. It does not authenticate a release, speaker, custody transfer or specimen. Every named interpretation limit printed by the runner remains `not_checked`, including `scientificEligibility`, `assessmentSupport` and `redistributionRights`.
This differs from the standalone claim-history parser, whose profile and external checks remain unrun, and from the instrument-binding example's external status. Read the scope of the evaluator, not just the word “passed.”
Follow each example [#follow-each-example]
| Workflow | Documents and source | What the example demonstrates |
| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| Documents | [History](/examples/v2/provenance/documents/history.json), [selection](/examples/v2/provenance/documents/selection.json), [text](/examples/v2/provenance/documents/document.txt) | A declared public document release and a directly extracted source statement. |
| Testimony | [History](/examples/v2/provenance/testimony/history.json), [selection](/examples/v2/provenance/testimony/selection.json), [account](/examples/v2/provenance/testimony/account.txt) | Distinct recorder, extractor and pseudonymous speaker labels, with unknown event context. |
| Physical samples | [History](/examples/v2/provenance/physical-samples/history.json), [selection](/examples/v2/provenance/physical-samples/selection.json), [custody record](/examples/v2/provenance/physical-samples/custody.txt) | A fictional collector-to-store handoff and a cited record whose bytes match its digest. |
The testimony and specimen histories deliberately contain restricted source labels to test preservation of access declarations. The fixtures themselves are public MIT-licensed examples. A real evaluator result retains the supplied history and selection; it is not a redacted publication view.
Try missing or contradictory information [#try-missing-or-contradictory-information]
Run either exercise from the extracted folder:
```sh
npm run documents -- --missing
npm run documents -- --changed
```
`--missing` supplies no source bytes. The `profile` and `external` checks remain `not_checked`. `--changed` alters one byte in memory; those checks become `failed` because the bytes no longer match their declared digest. Both return `success: false`, print diagnostics and exit with status 1. Structural and semantic checks still pass.
Use the same flags with `npm run testimony` or `npm run physical-samples`. The exercises never change the saved fixtures. Run `npm start` again to confirm that the originals still pass.
These examples show successful checks within bounded scopes. They do not imply complete transcription, a full witness model, full archival metadata or a laboratory-quality specimen record. The workflow guides state the remaining coverage explicitly.
Source and next steps [#source-and-next-steps]
The example histories, selections and source files are copied unchanged from the canonical [released-document](https://github.com/disclosurefoundation/disclosureos/tree/da7790d688b4d3fe1059ec91a75146a36fb991c1/examples/v2/released-document-demo), [historical-testimony](https://github.com/disclosurefoundation/disclosureos/tree/da7790d688b4d3fe1059ec91a75146a36fb991c1/examples/v2/historical-testimony-demo) and [physical-sample](https://github.com/disclosurefoundation/disclosureos/tree/da7790d688b4d3fe1059ec91a75146a36fb991c1/examples/v2/physical-sample-demo) examples. The archive includes their MIT license and the portal's [runner](/examples/v2/provenance/run.mjs).
Continue with [Claims](/v2/docs/claims), [Witnesses and accounts](/v2/docs/testimony), [Documents and custody](/v2/docs/documents) or [Materials and laboratory](/v2/docs/physical-samples). For measured data, use the separate [instrument example](/v2/docs/worked-example).
# Create your first record (/v2/docs/quickstart)
An observation can start as an incomplete record. You do not need to invent a time, position or measurement to make it valid. This tutorial creates a fictional draft with those gaps recorded explicitly.
**You need:** Node.js 22 and npm. The example uses JavaScript, runs locally and requires no account. It uses the published `@disclosureos/records` package at `2.0.0-beta.4`.
Try it before installing: [open the document inspector](/v2/inspect) and choose **Check document**. A fictional source-backed example is already loaded. Nothing is uploaded or published.
1. Install one package [#1-install-one-package]
In a new directory, run:
```sh
mkdir disclosureos-first-record
cd disclosureos-first-record
npm init -y
npm install --save-exact @disclosureos/records@2.0.0-beta.4
```
Use the exact version here. The packages are ESM; the `.mjs` extension in the next step lets Node run the file without additional configuration. Other packages can be added when you need them.
2. Create an observation [#2-create-an-observation]
Save this as `first-record.mjs`:
```js title="first-record.mjs"
import { parseExperimentalObservation } from "@disclosureos/records/experimental/v2";
const observation = {
kind: "observation",
schemaVersion: "0.1.0",
id: "first-observation",
status: "draft",
createdAt: "2026-10-16T00:00:00Z",
updatedAt: "2026-10-16T00:00:00Z",
eventTime: { state: "unknown", reason: "not_recorded" },
position: { state: "unknown", reason: "not_collected" },
sources: [],
products: [],
methods: [],
frames: [],
assertions: [],
measurements: [],
processing: [],
};
const result = parseExperimentalObservation(observation);
console.log(
JSON.stringify({ success: result.success, checks: result.checks }, null, 2),
);
```
`createdAt` and `updatedAt` describe the record, not when the event occurred. The event time and position remain unknown. The empty lists make this a starting draft with no sources or measurements yet.
The document's `schemaVersion` is **0.1.0**. It is separate from the **2.0.0-beta.4** package version. The `/experimental/v2` import path is intentional for this beta.
3. Run the check [#3-run-the-check]
```sh
node first-record.mjs
```
You should see:
```json
{
"success": true,
"checks": {
"structural": "passed",
"semantic": "passed",
"profile": "not_checked",
"external": "not_checked"
}
}
```
**What passed:** the document has a valid structure and its local relationships satisfy the parser's rules. The empty lists are allowed. This result does not mean the record is complete, accurate or ready for scientific analysis. Profile-specific and external checks have not run.
4. Inspect an error [#4-inspect-an-error]
Change `status: "draft"` to `status: "finished"` and run the file again. `finished` is not an allowed status. You should get `success: false`, a failed structural check and dependent checks left `not_checked`.
To inspect the explanation, add this after the existing `console.log`:
```js
console.log(result.issues);
```
The diagnostic identifies the invalid field. Restore `status: "draft"` to return to the passing draft. In your application, inspect diagnostics and check states before using a parsed document.
Add a source next [#add-a-source-next]
You have now run the parser on both a valid draft and an invalid document. The next useful step is a record with an actual source relationship.
* [Add a source to your record](/v2/docs/records): use the example case's station log, save an observation and diagnose a broken reference.
* [Follow a complete synthetic measurement](/v2/docs/worked-example): continue into instrument context, measured values and binding checks.
* [Look up a field](/v2/docs/reference/records): inspect the full nested structure and allowed values.
To build a viewer, [run the showcase](/v2/docs/showcase#run-the-viewer). It includes a working interface and fictional source files. The supporting guides use the same Beta 4 release for the more detailed record and sensor examples.
# Radar profiles (/v2/docs/radar)
A radar recording can contain sampled returns, detection decisions and track estimates. These are different products. A **radar profile** names their roles and checks how they connect to the capture, source files and processing steps.
This guide starts with one fictional rotating scan. You will reproduce its files, validate them, read one exact source cell and diagnose three failures. Then you can run the moving-platform, ground-processing, steered-beam and cooperative-reply examples.
Profile status [#profile-status]
**Published in npm `2.0.0-beta.4`.** The profile evaluators and readers are available through `@disclosureos/schema/experimental/v2`. The retained source revision below is only needed to regenerate this example.
Use [Equipment and captures](/v2/docs/instruments) for the shared equipment model. [Connect measurements](/v2/docs/bindings) links an individual observation measurement to a captured channel. The optional radar profiles instead describe complete scan products, including arrays and report tables. They compose the observation, acquisition and source-selection contracts; they do not require a claim history or the scalar measurement-binding document as inputs.
1. Open the published-package example [#1-open-the-published-package-example]
**Requirements:** Node.js 22, npm and a ZIP extractor. Create a local project and install the published API:
```sh
mkdir disclosureos-radar-beta4
cd disclosureos-radar-beta4
npm init -y
npm install --save-exact @disclosureos/schema@2.0.0-beta.4
curl --fail --location https://os.disclosure.org/examples/meridian.zip --output meridian.zip
unzip meridian.zip
curl --fail --location https://os.disclosure.org/examples/v2/radar/check-radar.mjs --output check-radar.mjs
node check-radar.mjs meridian/radar-scanning-v1
```
The download contains the full fictional example case. This guide uses only `meridian/radar-scanning-v1`. Keep the terminal in this npm project for the checks below. The displayed profile and selected-value results are explained in the following sections.
Use a **separate terminal and directory** for this reproduction. It regenerates the retained fixture; it is not required to install or use the published profile APIs. Return to the npm project above for the rest of this guide.
Reproduce a scanning capture [#reproduce-a-scanning-capture]
**Requirements:** Node.js 22, Git and pnpm 9.15.0. Start in a separate directory, then run:
```sh
git clone https://github.com/disclosurefoundation/disclosureos.git disclosureos-radar
cd disclosureos-radar
git checkout --detach e19a89793871d23fb036e59c75ff83c86e21dfad
corepack pnpm install --frozen-lockfile
corepack pnpm --workspace-concurrency=1 \
--filter "@disclosureos/schema..." build
node examples/radar-scanning/build.mjs
node examples/radar-scanning/verify.mjs
```
If you already built another sensor-profile guide at this exact revision, reuse that checkout and run the last two commands.
The build writes `examples/radar-scanning/generated/`. The verifier regenerates the fixture, compares every retained file byte for byte, runs the contracts and reads every declared table row and numerical cell. Its output is:
```json title="Reproduction result"
{
"success": true,
"files": 16,
"rows": 3588,
"cells": 147456,
"detections": 29,
"trackStates": 37,
"contracts": ["observation", "acquisition", "selection", "radar"],
"scientific": "not_checked",
"physicalCalibration": "not_performed"
}
```
`trackStates` counts saved estimates, not distinct objects. `cells` includes both return and threshold arrays. These counts belong to this exact fixture, not to every valid radar recording. Calibration was not performed in the synthetic experiment; passing reproduction does not verify hardware performance.
To run the independent detector and tracker tests:
```sh
node --test examples/radar-scanning/model.test.mjs
```
[Explore the same scanning example](/v2/instruments?recording=survey\&example=radar-scanning). Its separate fictional-position overlay lets you compare the estimates with the authored scene.
2. Follow the four documents [#2-follow-the-four-documents]
Open the downloaded example folder. The four documents have distinct jobs:
| Document | What to inspect |
| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| `observation.json` | Sources, products, coordinate frames and processing ancestry. A detection or track remains derived from its inputs. |
| `acquisition.json` | Equipment, configuration, active channel, capture time and the retained raw product. |
| `source-selection.json` | CSV columns, array axes, units, digests and exact selectors into the products. |
| `radar-profile.json` | Which products serve as the schedule, returns, thresholds, detections, tracks, associations and optional fictional positions. |
The profile identifies the other three documents by ID. In this fixture, `acquisition:radar-capture` and the context's `product:returns` select the capture. Channel `return-power` belongs to its pinned configuration. The profile's `products.returns` selects `product:returns` in the observation and source layouts. Equal names do not remove the need to check those document-specific relationships.
Retained products [#retained-products]
| File | Role in the example |
| -------------------- | ------------------------------------------------------------------------------------------------- |
| `scan-schedule.csv` | Start, end, direction and beam width for each dwell, the interval spent looking in one direction. |
| `returns.f32` | Relative-power samples in a `[scan, azimuth, range]` array: 16 × 72 × 64 cells. |
| `thresholds.f32` | The threshold applied to each return cell. |
| `detections.csv` | Selected peaks, source-cell indices, measurement times and estimated positions. |
| `tracks.csv` | Position and velocity estimates at scan end, filter state and position covariance. |
| `associations.csv` | Which detection updated each track. |
| `scenario-truth.csv` | Separate authored positions for comparison, excluded from detection and tracking inputs. |
`track-state.csv` retains the complete filter covariance for numerical reproduction. `methods.json` records the seed, equations and assumptions; `model.mjs` implements them. `index.json` is an example convenience index. It is not a substitute for the standard documents or their checks.
3. Validate files and read a source cell [#3-validate-files-and-read-a-source-cell]
The full reproduction above compares this specific example with its generator. The downloaded `check-radar.mjs` uses the installed Beta 4 package. Run it from the npm project created above.
From your npm project, run:
```sh
node check-radar.mjs \
meridian/radar-scanning-v1
```
The script loads the four saved documents and the local files. Its core call is:
```js
const result = await evaluateRadarProfile(
observation,
context,
selection,
profile,
{ assets },
);
```
`assets` maps each source layout's `productRef`, such as `product:returns`, to the complete file bytes. It does not map filenames, URLs or cell indices. The example index locates the local files; the evaluator checks their declared byte lengths and digests. The runner reads local files only and does not fetch artifact URLs.
The first result is:
```json title="Profile result"
{
"success": true,
"checks": {
"structure": "passed",
"sources": "passed",
"semantics": "passed"
},
"scientific": "not_checked",
"physicalCalibration": "not_checked",
"trackingPerformance": "not_checked",
"issues": []
}
```
| Check | Meaning |
| ----------- | -------------------------------------------------------------------------------------------------------------------------- |
| `structure` | The four inputs satisfy their prerequisite contracts. |
| `sources` | The source layouts have matching bytes and valid source selections. |
| `semantics` | The radar roles, timing, geometry, detection links, associations, covariance and processing ancestry satisfy this profile. |
These are the radar evaluator's actual field names. They differ from the structural, semantic, profile and external stages in the scalar-binding guide. **Do not flatten either report into a claim that the data is scientifically valid.** The evaluator does not establish physical calibration or tracking performance.
After success, the script uses `readProductSourceSelection` to read indices `[0, 9, 20]`. Indices are zero-based: this is the first scan, at 45° clockwise from local north and a horizontal range-cell center of 1,025 metres.
```json title="Selected source cell"
{
"selectedReturn": {
"byteOffset": 2384,
"byteLength": 4,
"coordinates": {
"scan": 0,
"azimuth": { "value": 45, "unit": "deg" },
"range": { "value": 1025, "unit": "m" }
},
"quantity": "normalized_return_power",
"unit": "1",
"mediaDecoding": "not_applicable",
"value": 0.10780756920576096
}
}
```
The value is dimensionless relative power. Despite the quantity name, this fixture's values can exceed 1. It is not watts, radar cross-section, probability or an identified object. The reader locates and decodes a cell; it does not authenticate a file. The script therefore validates the complete sources before reading one.
4. Diagnose a failed check [#4-diagnose-a-failed-check]
Each flag changes only in-memory inputs. Use one flag at a time. Each deliberate failure exits with status 1, leaves the generated files untouched and stops before the source-cell read. An unsupported flag or extra argument exits with usage status 2.
Withhold the return bytes [#withhold-the-return-bytes]
```sh
node check-radar.mjs \
meridian/radar-scanning-v1 \
--missing-returns
```
The radar result has `success: false`, `sources: failed` and `semantics: not_checked`, with `RADAR.SOURCE_CONTENT`. It cannot complete the profile without the return bytes.
The additional source report leaves `external: not_checked` and has no source issue. **Missing bytes are not contradictory bytes.** Do not treat an empty issue list as a completed check; inspect the stage statuses too.
Change one byte [#change-one-byte]
```sh
node check-radar.mjs \
meridian/radar-scanning-v1 \
--changed-returns
```
The radar result again reports `RADAR.SOURCE_CONTENT`. This time, the source report has `external: failed` and the following issue:
```json title="Changed-byte issue"
{
"code": "EXTERNAL.DIGEST",
"stage": "external",
"pointer": "product:returns",
"message": "Artifact digest differs."
}
```
The source pointer is a product reference. The bytes have the expected length but no longer match the retained digest.
Name a channel that was not captured [#name-a-channel-that-was-not-captured]
```sh
node check-radar.mjs \
meridian/radar-scanning-v1 \
--wrong-channel
```
Structure passes, `semantics` fails and sources remain `not_checked`. The issue is:
```json title="Channel issue"
{
"code": "RADAR.CHANNEL",
"pointer": "/channelId",
"message": "Return power must select an acquisition channel from its pinned manifest with matching quantity and unit."
}
```
Here the pointer is a path in `radar-profile.json`. Restore the passing result by running the command without a flag. No file restoration is needed.
Processing and timing [#processing-and-timing]
Keep **measurement time**, **result availability** and **estimate time** distinct. In the rotating example, returns are sampled at dwell midpoint and available at dwell end. The detector compares neighboring directions after the complete rotation, so its detections become available at scan end. Tracks are also estimated at scan end.
A viewer can show new return cells while still displaying the previous completed scan's track estimate. Keep that older estimate's time visible. A coasting track is a prediction without an associated detection in that scan; it does not establish that an object disappeared. `confirmed` is a filter state after repeated updates, not verified identity.
The seeded generator, range-neighborhood threshold and constant-velocity Kalman tracker are declared in `methods.json`. Adjacent directions were sampled at different times. The centroid does not compensate for that scan skew, and its assumed measurement error does not prove the error has been corrected.
Choose another scenario [#choose-another-scenario]
For these optional regeneration steps, return to the separate source checkout from step 1. All commands below run from that checkout root. Each builder writes its own `generated/` directory. Each verifier compares the retained files with the generator, evaluates the appropriate profile and reads the declared source content. A successful report keeps scientific validation unchecked and calibration not performed.
The `check-radar.mjs` exercise above targets the fixed rotating fixture. For the other scenarios, use their verifiers below. A steered `[dwell, range]` array and a cooperative reply table must not be fed into the rotating array reader by relabeling them.
Moving platforms [#moving-platforms]
```sh
node examples/radar-moving/build.mjs
node examples/radar-moving/verify.mjs
node --test examples/radar-moving/model.test.mjs
```
This produces `generated/airborne/` and `generated/shipborne/` beneath `examples/radar-moving/`. Both use `RadarProfile` and `evaluateRadarProfile`.
The optional `platform` declaration and `products.platformPose` retain position, height and heading at each dwell midpoint. A beam can be relative to local north or platform heading. Every cell in a detection neighborhood uses its own retained pose; applying one end-of-scan pose would distort the estimate. The detector's declared inputs include both pose and schedule, without ancestry from fictional positions.
* [Airborne](/v2/instruments?recording=survey\&example=radar-airborne) retains slant range. East/north positions depend on a declared horizontal ground plane, not a measured target height. A slant range too short to reach that plane has no plotted position.
* [Shipborne](/v2/instruments?recording=survey\&example=radar-shipborne) uses horizontal range, a vessel changing course, other surface traffic and a fixed buoy.
The public `radarCellPosition` helper performs the declared coordinate conversion. The model assumes a level antenna and yaw-only rotation. It excludes pitch, roll, navigation error, terrain relief, Earth curvature and propagation. Changing from map view to platform view changes the display frame, not the retained values or times. It does not reconstruct historical relative trails.
Ground and airport surface surveillance [#ground-and-airport-surface-surveillance]
```sh
node examples/radar-site/build.mjs
node examples/radar-site/verify.mjs
node --test examples/radar-site/model.test.mjs
```
This produces `generated/ground/` and `generated/civilian/` beneath `examples/radar-site/`. Both extend the rotating profile with optional reference capture, background subtraction, detector eligibility and site-feature sources.
The [ground example](/v2/instruments?recording=survey\&example=radar-ground) retains reference returns, their mean background, received returns and the background-subtracted detector input. Thresholds and peaks refer to that processed input. Subtraction produces nonnegative float32 values; it is not a Doppler filter or a calibrated clutter-rejection claim.
An eligibility mask says which cells the detector may use. A hatched cell still has a return. It is excluded from detection, not outside reception coverage or a negative observation. The profile checks declared arithmetic, selection rules and processing ancestry; it does not require this branch for every rotating recording.
The [civilian example](/v2/instruments?recording=survey\&example=radar-civilian) adds an authored airport-surface sketch. Runways, taxiways and aprons are context, not radar-inferred features. Track labels do not identify aircraft or vehicles. The example does not supply altitude, transponder fusion or operational clearance decisions.
Scheduled beam steering [#scheduled-beam-steering]
```sh
node examples/radar-advanced/build.mjs
node examples/radar-advanced/verify.mjs
node --test examples/radar-advanced/model.test.mjs
```
These commands generate and verify both `generated/military/` and `generated/secondary/` beneath `examples/radar-advanced/`.
The [military example](/v2/instruments?recording=survey\&example=radar-military) uses `SteeredRadarProfile` with `evaluateSteeredRadarProfile`. It retains each beam's direction, width, purpose and start/end time. The authored sector search and revisits illustrate electronic steering, which also has civilian uses. They are not a universal military radar type or an adaptive target-priority policy.
Returns and thresholds have axes `[dwell, range]`. Adjacent dwell indices need not be adjacent directions. Each detection points to its actual beam and range cell; detection and track results become available at dwell end. A coasting track may mean the beam looked elsewhere. Expiry depends on elapsed time since the last detection, not dwell count. Gaps between dwells are not measurements.
Cooperative replies [#cooperative-replies]
The same advanced runner also verifies the [secondary example](/v2/instruments?recording=survey\&example=radar-secondary), using `SecondaryRadarProfile` with `evaluateSecondaryRadarProfile`.
This packet begins with decoded replies, not raw radio-frequency pulses. It keeps interrogation windows, decoded replies and accepted reports separate. It has no reflected-power array or primary-radar detection threshold. Every accepted report refers to one valid reply; invalid replies remain inspectable and cannot become accepted reports.
Mode A codes are reported four-digit octal strings. Preserve leading zeros and do not treat the code as authenticated identity. Mode C supplies pressure altitude referenced to 1013.25 hPa, not geometric height. The display keeps slant range and bearing rather than using that altitude to invent a horizontal position.
Missing fields remain missing. A window without a reply does not establish that no object was present. Acquisition and availability times remain explicit. The example does not fuse replies into an aircraft track or implement an RF decoder, Mode S, ADS-B or IFF. Its separate fictional-position table is excluded from report selection.
Validation boundaries [#validation-boundaries]
Use the evaluator to check declared relationships and retained numerical consistency. Use the example's model tests for its particular detector and tracker. Neither establishes operational detection performance or physical calibration.
The plotted 95% contour comes from a declared Gaussian position model. It is conditional on the pose, projection and filter assumptions, without uncertainty in those inputs. It is not a calibrated accuracy guarantee, detection probability or confidence in identity.
The models do not implement the physical radar equation, atmospheric propagation, terrain masking or measured antenna calibration. They are not a constant-false-alarm-rate specification, an ASTERIX decoder or a representation of named operational hardware. A public byte digest identifies the retained bytes; it does not authenticate their origin.
For background on the distinction between reflected returns and cooperative replies, see [FAA surveillance systems](https://www.faa.gov/air_traffic/publications/atpubs/aim_html/chap4_section_5.html). [MIT Lincoln Laboratory's tracking and parameter estimation notes](https://www.ll.mit.edu/media/6981) explain the estimation concepts. The executable examples and limits above are defined by the pinned source, not by those operational references.
Build on the example [#build-on-the-example]
Use the [pinned radar profile definitions](https://github.com/disclosurefoundation/disclosureos/blob/e19a89793871d23fb036e59c75ff83c86e21dfad/packages/disclosureos-schema/src/experimental/v2/radar-profile-schema.ts) and [steered/secondary definitions](https://github.com/disclosurefoundation/disclosureos/blob/e19a89793871d23fb036e59c75ff83c86e21dfad/packages/disclosureos-schema/src/experimental/v2/advanced-radar-profile-schema.ts) for the exact fields. The [shared equipment reference](/v2/docs/reference/instruments) describes the capture declarations; it is not a reference for these newer radar-specific fields.
For your own integration, retain the provider's files first, declare their layouts and capture relationships, then choose the profile that fits the actual products. Compute digests from the supplied bytes. Keep reported values, derived estimates and any synthetic comparison separate. Do not copy the example's clock precision, calibration state, detector thresholds or covariance as defaults for real equipment.
A simpler radar observation can still use the shared record and instrument contracts without these optional profiles. Choose one when you need its scan-level checks, not solely because the instrument is called a radar.
# Records overview (/v2/docs/records-overview)
The Records area covers the observation itself, its setting, witness accounts, documents and physical samples. Use this overview to choose a guide for the material you have. Each guide has a field reference beneath it in the menu.
Start with an observation [#start-with-an-observation]
An observation holds source references, reported time and position, measured values and processing history. It can begin as a small draft with explicit gaps. You can add the supporting documents your application needs as the material becomes available.
The Observation guide uses the fictional example case's station log. Attach it to a record, save validated JSON and diagnose a broken source reference.
[Build an observation →](/v2/docs/records)
New to the packages? Begin with
your first record
.
Choose the supporting material [#choose-the-supporting-material]
These topics extend what you can describe. You do not need to implement every topic before saving a useful observation.
Event and setting [#event-and-setting]
Describe reported objects, places, platforms, conditions and time. Keep competing descriptions and their sources separate, and link measured quantities to the observation.
[Describe the setting →](/v2/docs/context)
Witnesses and accounts [#witnesses-and-accounts]
Distinguish a witness from each account they give. Retain recording context, sourced qualifications and the details of interviews or other collection procedures.
[Add witness accounts →](/v2/docs/testimony)
Documents and custody [#documents-and-custody]
Track document editions, pages, releases and digital custody. Preserve which edition supplied a statement or extract so later changes remain traceable.
[Track document editions →](/v2/docs/documents)
Materials and laboratory [#materials-and-laboratory]
Describe collected specimens, their preparation, custody and laboratory results. Keep each result connected to the tested portion and the files that support it.
[Describe physical samples →](/v2/docs/physical-samples)
How the documents connect [#how-the-documents-connect]
Your application keeps the source files and the JSON documents that describe them. An observation inventories its sources and data products. Supporting documents, such as context or witness records, link to the observation through the references defined by their schemas. References to exact document snapshots preserve which version was used.
A source description can remain incomplete or disputed. Keep a reviewer's assessment in a [claim history](/v2/docs/claims), with the subject, supporting inputs and attribution. For recordings, [Instruments](/v2/docs/instruments-overview) supplies equipment and capture context that can be connected to the observation's products and measurements.
Use a guide to assemble and check a document. Use its **field reference** to look up required fields, alternatives and constraints. The [Observation fields](/v2/docs/reference/records) cover the core record; each supporting topic has its own reference.
Check supplied source files [#check-supplied-source-files]
The shared [source and custody examples](/v2/docs/provenance-examples) cover documents, testimony and physical samples. Run the workflow that matches your material to inspect declared relationships and check supplied files against their recorded digests. These checks do not authenticate a speaker, document release or physical handoff.
Package availability [#package-availability]
The observation, context, witness, document, material and laboratory APIs are published in Beta 4. Each guide identifies the document versions and checks it uses. See [installation and release details](/v2/docs/installation).
For an interactive explanation, visit the [Records standard page](/v2/records). To inspect a connected implementation, [explore the fictional example case](/showcase).
# Observation records (/v2/docs/records)
Use an observation to connect source material, reported values, measurements and processing history. It can hold an incomplete or disputed report. Including a value in a record does not establish that the value is true; attributed interpretations belong in a separate [claim history](/v2/docs/claims).
This guide takes the next step after [your first record](/v2/docs/quickstart). You will use one source from the fictional DisclosureOS example case, save a small observation and test a broken reference. The full case remains available in the showcase.
**Requirements:** Node.js 22 and the published `@disclosureos/records@2.0.0-beta.4` package. Reuse your quickstart directory, or install that exact version in a new npm project. The observation's document version remains `0.1.0`; it is separate from the package version.
1. Read the source [#1-read-the-source]
[Open the example station log](/examples/meridian/station-log.txt). It identifies itself as synthetic and describes a four-minute field session:
> The four-minute session begins at 21:00 UTC on 14 August 2026.
We can represent that declared session as an interval from 21:00 to 21:04 UTC. The log does not provide geographic coordinates, so the position stays unknown. This is a teaching draft assembled from the same source used by the showcase, with the recordings and other material left out.
Your application retains the source file and decides how people access it. The observation stores its identity and, optionally, a URI and digest. The parser does not download or read the file.
2. Build the observation [#2-build-the-observation]
Save the complete example below as `source-record.mjs` in your project directory. It needs only the records package and Node's built-in file writer.
```js title="source-record.mjs"
import { writeFileSync } from "node:fs";
import { parseExperimentalObservation } from "@disclosureos/records/experimental/v2";
const observation = {
kind: "observation",
schemaVersion: "0.1.0",
id: "docs-field-session",
status: "draft",
createdAt: "2026-10-16T00:00:00Z",
updatedAt: "2026-10-16T00:00:00Z",
eventTime: {
state: "known",
value: {
kind: "interval",
start: {
kind: "instant",
value: "2026-08-14T21:00:00.000Z",
timeScale: "UTC",
},
end: {
kind: "instant",
value: "2026-08-14T21:04:00.000Z",
timeScale: "UTC",
},
},
sourceRefs: ["source:station-log"],
},
position: { state: "unknown", reason: "not_collected" },
sources: [
{
id: "station-log",
title: "Field session log",
kind: "document",
access: "public",
uri: "https://os.disclosure.org/examples/meridian/station-log.txt",
},
],
products: [],
methods: [],
frames: [],
assertions: [],
measurements: [],
processing: [],
};
const result = parseExperimentalObservation(observation);
console.log(
JSON.stringify(
{
success: result.success,
checks: result.checks,
uncheckedRefs: result.uncheckedRefs,
},
null,
2
)
);
if (!result.success) {
console.error(JSON.stringify(result.issues, null, 2));
process.exitCode = 1;
} else {
writeFileSync(
"source-observation.json",
JSON.stringify(result.data, null, 2) + "\n"
);
console.log("Saved source-observation.json");
}
```
Four details connect this record to its source:
* **Source identity:** `sources[0].id` gives the log a local ID, `station-log`.
* **Source reference:** `eventTime.sourceRefs` uses `source:station-log` to point to that entry. The prefix identifies the kind of reference; it is not a URL.
* **Reported time:** `eventTime.value` holds the interval described in the log. `state: "known"` means a value is supplied with support, not independently confirmed.
* **Document dates:** `createdAt` and `updatedAt` describe the document's lifecycle. They do not replace the event time.
`status: "draft"` is a declared lifecycle state. Changing it to `published` does not upload the document or certify it. The empty arrays are allowed; this example has no instrument measurements or declared processing.
3. Validate and save [#3-validate-and-save]
Run the file from your project directory:
```sh
node source-record.mjs
```
You should see this result, followed by `Saved source-observation.json`:
```json
{
"success": true,
"checks": {
"structural": "passed",
"semantic": "passed",
"profile": "not_checked",
"external": "not_checked"
},
"uncheckedRefs": ["source:station-log"]
}
```
The structure is valid and the local source reference resolves. The parser has not opened the log, compared the declared interval with its text or verified its authenticity. That is why the source remains in `uncheckedRefs` and `external` remains `not_checked`. A profile check has not run either.
The example writes `result.data` only after `success` is true. In your application, show or log `result.issues` on failure and stop that import. A failed run leaves any previously saved file untouched; use the exit status to decide whether the current run produced a valid output.
To inspect the saved result visually, [open the browser inspector](/v2/inspect), use **Open JSON** to load `source-observation.json`, then choose **Check document**. Your input stays in the browser. Saving or inspecting the record does not publish it.
4. Try a broken reference [#4-try-a-broken-reference]
In `eventTime.sourceRefs`, replace `source:station-log` with `source:missing`. Keep the source inventory unchanged, then run the script again.
The document still has the right shape, but its reference no longer resolves. `success` becomes `false`, `structural` stays `passed`, and `semantic` becomes `failed`. The script exits with status 1 and prints this issue:
```json
[
{
"code": "REF.LOCAL_RESOLUTION",
"stage": "semantic",
"severity": "error",
"pointer": "/eventTime/sourceRefs/0",
"message": "Undeclared local reference: source:missing"
}
]
```
The JSON Pointer identifies the first entry in `eventTime.sourceRefs`. Restore `source:station-log` to make the record pass again.
This is a semantic error. By contrast, an invalid field type or an unexpected field fails the structural check and leaves dependent semantic checks `not_checked`. A JSON Schema validator can check structure; reference resolution, time ordering, selections, unit consistency and processing lineage require the parser or an equivalent semantic implementation.
How the record fits together [#how-the-record-fits-together]
Use the parts that your material needs. Required inventory arrays can be empty; an empty list does not establish that nothing was observed or that a research profile is satisfied.
| Part | What it holds |
| ----------------------- | --------------------------------------------------------------------------------- |
| Identity and lifecycle | The record ID, draft/publication state and document timestamps. |
| Event time and position | Supported values, approximate values, explicit gaps or redactions. |
| Sources | An inventory of documents, testimony, instrument data and other source material. |
| Products | Raw or derived data products, with source or processing links. |
| Methods and frames | Declared methods, their versions and coordinate reference frames. |
| Assertions | Particular values extracted from sources, with provenance and available locators. |
| Measurements | Quantities, values, units, uncertainty and supporting references. |
| Processing | Declared activities connecting inputs, outputs, methods, actors and times. |
For exact alternatives and constraints, use the [observation field reference](/v2/docs/reference/records#observation). The schema is also exported through `@disclosureos/records/experimental/v2/observation/schema`; its identifier is `urn:disclosureos:experimental:observation:0.1.0`.
Preserve time, position and uncertainty [#preserve-time-position-and-uncertainty]
A known or approximate time or position carries supporting references. Approximate values also declare precision. Unknown and redacted values carry a reason. Use these states instead of inventing midnight, a zero duration or coordinates at zero latitude and longitude.
A measured quantity has a signed value, a unit and an uncertainty object. Uncertainty can be `unknown`, `standard`, `expanded` or `bound`. Expanded uncertainty requires a positive coverage factor; it does not infer a coverage probability. Quantity and uncertainty units must match exactly. The parser does not convert units or certify their physical meaning.
Positions retain their coordinate frames. Geographic angles use degrees. Keep metric position uncertainty separate from angular uncertainty, and declare a matching vertical reference for geodetic altitude. An unknown frame definition stays unknown.
Keep alternatives and selections visible [#keep-alternatives-and-selections-visible]
The small example links its time directly to a source. Use `assertions` when you need to preserve individual extracted values, their provenance or competing accounts. An assertion can retain its source locator and original-author and extractor identities. It does not have to become the record's current value.
When a current value cites a local assertion, include an explicit selection: who selected it, when, the method and version, the inputs considered, and the reason. The selected value must be copied exactly. You can retain several assertions while leaving the current value unknown; the parser does not average them or choose an interpretation.
Keep attributed assessments of those values in a [claim history](/v2/docs/claims). A source's reported wording, a selected value and an assessment have different roles.
Trace product lineage [#trace-product-lineage]
Use a raw product to describe retained data linked to its sources. A derived product identifies the processing activity that produced it. Each activity declares its inputs, outputs, method and version, actor and time.
Those links must resolve consistently in both directions. Local processing cycles fail validation. A declared processing step does not prove that the output was reproduced. The [complete measurement example](/v2/docs/worked-example) follows this pattern through a raw product, a reduction and a measured value.
Normative objects reject unexpected fields. Namespaced `extensions` can retain additional JSON, but the core does not validate its meaning. Access labels and redacted fields do not remove sensitive information from other fields or files. Review the full publication separately.
Add the next part [#add-the-next-part]
Choose the guide that matches your source material. These additions connect to the observation; they do not all need to be included in one record.
| Your next task | Guide |
| --------------------------------------------------------------------------------- | ----------------------------------------------------- |
| Connect a reading to the equipment and capture that produced it | [Instruments](/v2/docs/instruments) |
| Describe reported objects, places, platforms, conditions or historical time | [Event and setting](/v2/docs/context) |
| Retain witnesses, distinct accounts, recording context and sourced qualifications | [Witnesses and accounts](/v2/docs/testimony) |
| Track document editions, release events and digital custody | [Documents and custody](/v2/docs/documents) |
| Connect collected specimens, preparation and laboratory results | [Materials and laboratory](/v2/docs/physical-samples) |
| Attach a review with a subject, supporting inputs, reviewer and method | [Claims](/v2/docs/claims) |
Witness and document entities attach detailed declarations to exact observation snapshots. Material and laboratory contracts are also included in Beta 4; their guide describes the separate specimen, preparation and result identities. Add those documents when your integration needs them.
See the same source in the showcase [#see-the-same-source-in-the-showcase]
[Open the field recording](/showcase?surface=desk\&deskGroup=recordings\&view=instruments\&workspace=mixed). The full fictional case connects this session to recordings, accounts, documents and samples. This guide's smaller record deliberately keeps only the station-log source and session time so you can understand and reproduce the first connection.
For the public explanation of these concepts, visit [the Records standard page](/v2/records). For exact implementation detail, return to [the field reference](/v2/docs/reference/records).
# Satellite raster profile (/v2/docs/satellite)
A multispectral raster stores several band values at each grid cell. The picture is one way to display those values. This profile keeps the original numbers, quality annotations and grid coordinates available for inspection.
You will reproduce a fictional scene, validate its two source arrays, inspect one cell and diagnose three failures. A passing check establishes source integrity and consistency with the profile. It does not verify physical reflectance, cloud labels or geographic accuracy.
Profile status [#profile-status]
**Published in npm `2.0.0-beta.4`.** The profile evaluators and readers are available through `@disclosureos/schema/experimental/v2`. The retained source revision below is only needed to regenerate this example.
[Equipment and captures](/v2/docs/instruments) explains the shared equipment model. This optional profile connects a multispectral raster to an observation, acquisition context and source selection. It does not require scalar measurement bindings or claim history.
1. Open the published-package example [#1-open-the-published-package-example]
**Requirements:** Node.js 22, npm and a ZIP extractor. Create a local project and install the published API:
```sh
mkdir disclosureos-satellite-beta4
cd disclosureos-satellite-beta4
npm init -y
npm install --save-exact @disclosureos/schema@2.0.0-beta.4
curl --fail --location https://os.disclosure.org/examples/meridian.zip --output meridian.zip
unzip meridian.zip
curl --fail --location https://os.disclosure.org/examples/v2/satellite/check-satellite.mjs --output check-satellite.mjs
node check-satellite.mjs meridian/satellite-v1
```
The download contains the full fictional example case. This guide uses only `meridian/satellite-v1`. Keep the terminal in this npm project for the checks below. The displayed profile and selected-value results are explained in the following sections.
Use a **separate terminal and directory** for this reproduction. It regenerates the retained fixture; it is not required to install or use the published profile APIs. Return to the npm project above for the rest of this guide.
Reproduce a raster [#reproduce-a-raster]
**Requirements:** Node.js 22, Git and pnpm 9.15.0. Start in a separate directory, then run:
```sh
git clone https://github.com/disclosurefoundation/disclosureos.git disclosureos-satellite
cd disclosureos-satellite
git checkout --detach e19a89793871d23fb036e59c75ff83c86e21dfad
corepack pnpm install --frozen-lockfile
corepack pnpm --workspace-concurrency=1 \
--filter "@disclosureos/schema..." build
node examples/satellite-raster/build.mjs
node examples/satellite-raster/verify.mjs
```
If you already built a previous sensor-profile guide at this exact revision, reuse that checkout and run the last two commands.
The build writes `examples/satellite-raster/generated/`. The verifier regenerates and compares every generated file, then evaluates the profile. Its output is:
```json title="Reproduction result"
{
"files": 10,
"pixels": 6912,
"bands": 6,
"clear": 5834,
"cloud": 399,
"shadow": 283,
"nodata": 396,
"checks": {
"structure": "passed",
"sources": "passed",
"semantics": "passed"
},
"scientific": "not_checked",
"physicalCalibration": "not_checked"
}
```
The 72 × 96 grid contains 6,912 cells. Each has six stored band values and one quality code. The four quality counts cover every cell; `clear` does not guarantee that every band is present.
Run the model checks:
```sh
node --test examples/satellite-raster/model.test.mjs
```
These check deterministic generation, little-endian encoding, quality codes, retained zero values and partial-band absence.
[Explore the same raster](/v2/instruments?recording=survey\&example=satellite). Switch between natural color, infrared, a single band and the vegetation index, then select a cell.
What the profile describes [#what-the-profile-describes]
The optional `SatelliteRasterProfile` describes an uncompressed, north-up multispectral reflectance raster on a WGS84 UTM grid. It declares band order, scaling, missing-value codes, whole-pixel quality and a red/near-infrared index policy.
Four connected documents [#four-connected-documents]
| Document | What it provides |
| ------------------------ | ------------------------------------------------------------------------ |
| `observation.json` | Sources and the two retained raster products. |
| `acquisition.json` | Equipment, pinned configuration, reflectance channel and raw artifacts. |
| `source-selection.json` | Array shapes, byte order, lengths, digests and source units. |
| `satellite-profile.json` | References to those documents, band definitions, grid and quality rules. |
The profile selects `acquisition:satellite-capture` and channel `reflectance`, whose quantity is `surface_reflectance` with unit `1` (dimensionless). Both `acquisitionProducts` and `products` contain `reflectance` and `quality` roles. The first maps to acquisition products; the second maps to observation products and source layouts. Matching digests, lengths and media types bind the arrays to the capture.
Both products are `raw` in this fixture. That identifies the retained inputs to the example, not physically collected satellite telemetry. `dataOrigin: synthetic` identifies their actual origin. No atmospheric correction or processing activity is declared.
Two source arrays [#two-source-arrays]
| File | Layout | Bytes |
| ----------------- | ------------------------------------------------------------ | ------ |
| `reflectance.u16` | Six band planes, each 72 × 96, unsigned 16-bit little-endian | 82,944 |
| `quality.u8` | One 72 × 96 plane of unsigned 8-bit quality codes | 6,912 |
Reflectance axes are `[band, row, column]`. Each band occupies a complete row-major plane; the values are not interleaved RGB pixels. Quality axes are `[row, column]`. Both arrays begin at byte offset zero.
This profile reads declared arrays, not GeoTIFF, Cloud Optimized GeoTIFF or a vendor archive. An adapter must supply supported arrays and preserve how they relate to the original artifact. A different file extension alone does not make an input compatible.
`methods.json`, `model.mjs` and `README.md` describe the authored scene. `index.json` is a convenience file index, not another standard contract.
2. Validate files and inspect a cell [#2-validate-files-and-inspect-a-cell]
To use the public API separately from fixture reproduction, download the check script. Save it as `check-satellite.mjs` in your npm project so it uses the installed Beta 4 package.
From your npm project, run:
```sh
node check-satellite.mjs \
meridian/satellite-v1
```
The runner imports `evaluateSatelliteRasterProfile` and `satelliteCellBounds` from `@disclosureos/schema/experimental/v2`, loads the four documents and both local arrays, then calls:
```js
const result = await evaluateSatelliteRasterProfile(
observation,
context,
selection,
profile,
{ assets },
);
```
`assets` maps `product:reflectance` and `product:quality` to complete file bytes. It is not keyed by filename, band or cell index. The runner locates local files through the example index and does not fetch artifact URLs.
The first report is:
```json title="Profile result"
{
"success": true,
"checks": {
"structure": "passed",
"sources": "passed",
"semantics": "passed"
},
"scientific": "not_checked",
"physicalCalibration": "not_checked",
"qualityAccuracy": "not_checked",
"georeferencing": "not_checked",
"issues": []
}
```
| Check | Meaning |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------- |
| `structure` | All four inputs satisfy their prerequisite contracts. |
| `sources` | Source selections and retained bytes pass their checks, including lengths and digests. |
| `semantics` | Document and acquisition bindings, array layouts, decoded band ranges, quality rules and grid declarations satisfy the profile. |
Read the issue as well as the stage name: a document-binding error can fail semantics before source checking. All four physical and scientific checks remain `not_checked` even when `success` is true.
Only after success, select a cell and calculate its bounds:
```js
const { cells } = result.data.products;
const cell = cells[4845];
const bounds = satelliteCellBounds(profile, cell.row, cell.column);
```
The runner prints the complete decoded cell and its projected bounds:
```json title="Selected cell"
{
"cell": {
"index": 4845,
"row": 50,
"column": 45,
"easting": 501365,
"northing": 4100645,
"qualityCode": 0,
"quality": "clear",
"dn": [
429,
954,
478,
4690,
2208,
1156
],
"reflectance": [
0.0429,
0.0954,
0.0478,
0.46900000000000003,
0.22080000000000002,
0.11560000000000001
],
"byteOffsets": [
9690,
23514,
37338,
51162,
64986,
78810
],
"qualityByteOffset": 4845,
"ndvi": 0.815015479876161,
"ndviReason": "valid"
},
"bounds": {
"west": 501350,
"east": 501380,
"north": 4100660,
"south": 4100630
}
}
```
Cell **4845** is at row 50, column 45: `50 × 96 + 45 = 4845`. Array indices and byte offsets start at zero. The six values in each band array follow the declared band order below. Small decimal tails in this output come from floating-point arithmetic; they do not imply extra measurement precision.
For this layout, band `b` at cell `i` starts at byte `(b × 6912 + i) × 2`. Its two-byte range is half-open: the red value uses `[37338, 37340)` and the near-infrared value uses `[51162, 51164)` in `reflectance.u16`. The quality code occupies `[4845, 4846)` in `quality.u8`. The returned offsets refer to source files, not display-image pixels.
Use an explicit little-endian read, such as `DataView.getUint16(offset, true)`, when inspecting these bytes independently. A native typed-array view does not declare byte order.
The dependency-free `readSatelliteRasterProducts` reader checks array content and declarations, but does not verify hashes or acquisition links. Prefer the decoded products returned by the successful evaluator when presenting checked data.
[Inspect this cell in the showcase](/showcase?surface=desk\&view=instruments\&workspace=bench\&benchFamily=survey\&variantDevice=satellite\&satellitePixel=4845\&satelliteMode=natural\&satelliteQuality=1\&satelliteZoom=1).
Stored numbers and band values [#stored-numbers-and-band-values]
A stored digital number (`DN`) becomes reflectance using the band's declared formula: `DN × scale + offset`. Check for the band's no-data sentinel **before** applying that formula. In this fixture, every band uses scale `0.0001`, offset `0`, no-data code `65535` and decoded valid range `[0, 1]`.
| Band index | ID | Nominal center |
| ---------- | ------- | -------------- |
| 0 | `blue` | 482 nm |
| 1 | `green` | 561 nm |
| 2 | `red` | 655 nm |
| 3 | `nir` | 865 nm |
| 4 | `swir1` | 1,610 nm |
| 5 | `swir2` | 2,200 nm |
These are nominal wavelength centers, not spectral response functions or a claim that this is a named satellite sensor. The selected cell's red DN is 478, giving reflectance 0.0478; its near-infrared DN is 4690, giving approximately 0.469. A retained DN of zero is valid. The sentinel decodes to `null`, not zero or 6.5535.
The viewer maps red/green/blue to natural color and near-infrared/red/green to an infrared composite. Its 0–0.6 display stretch affects brightness only. Neither RGB color nor a stretched pixel replaces the six source values. No physical radiometric calibration is verified.
Quality and derived indices [#quality-and-derived-indices]
Quality codes annotate the whole pixel. They do not substitute for per-band availability:
| Code | Label | Meaning in this fixture |
| ---- | -------- | ---------------------------------------------------------------- |
| 0 | `clear` | Authored clear annotation; individual bands can still be absent. |
| 1 | `cloud` | Authored cloud patch with retained band values. |
| 2 | `shadow` | Authored shadow patch with retained band values. |
| 3 | `nodata` | Every band must contain its declared no-data sentinel. |
These are four enumerated values, not a bitmask or Landsat QA encoding. They come from the fictional model, not a cloud classifier. `qualityAccuracy` remains unchecked.
The normalized difference vegetation index (NDVI) uses scaled near-infrared and red reflectance: `(NIR − red) / (NIR + red)`. The [USGS explanation of NDVI](https://www.usgs.gov/landsat-missions/landsat-normalized-difference-vegetation-index) describes this ratio. This fixture has its own scaling and exclusion rules; do not substitute a sensor-specific scaling recipe or treat the result as a land-cover classification.
The reader evaluates each cell in this order:
1. If either required band is absent, return `null` with reason `nodata`.
2. If the quality code is not clear, return `null` with reason `quality_excluded`.
3. If either reflectance is negative, return `null` with reason `negative_reflectance`.
4. If their sum is zero, return `null` with reason `zero_denominator`.
5. Otherwise, calculate the ratio and return reason `valid`.
Negative reflectance is excluded by this profile's index policy. The generated fixture has no negative values; a different permitted band declaration with an offset and negative valid range can reach that branch. Do not replace a missing or excluded index with zero.
The runner compares five cells:
```json title="Cell availability"
{
"availability": [
{
"index": 582,
"quality": "clear",
"red": 0,
"nir": 0,
"ndvi": null,
"ndviReason": "zero_denominator"
},
{
"index": 583,
"quality": "clear",
"red": 0.23420000000000002,
"nir": null,
"ndvi": null,
"ndviReason": "nodata"
},
{
"index": 91,
"quality": "nodata",
"red": null,
"nir": null,
"ndvi": null,
"ndviReason": "nodata"
},
{
"index": 4966,
"quality": "cloud",
"red": 0.8380000000000001,
"nir": 0.7931,
"ndvi": null,
"ndviReason": "quality_excluded"
},
{
"index": 4187,
"quality": "shadow",
"red": 0.020300000000000002,
"nir": 0.0223,
"ndvi": null,
"ndviReason": "quality_excluded"
}
]
}
```
Cell 582 contains valid zeros, while cell 583 has only the near-infrared band missing. Cell 91 is whole-pixel no-data. The cloud and shadow cells retain numeric spectra, but their annotations exclude them from this index. Turning off the viewer's quality overlay does not change that policy or restore the surface hidden beneath an authored cloud.
Grid coordinates [#grid-coordinates]
The example declares a WGS84 UTM zone 11 north grid (`EPSG:32611`) in metres. Its six-coefficient transform is `[500000, 30, 0, 4102160, 0, -30]`. There is no rotation. Columns increase eastward; rows increase southward.
The transform locates cell **corners**. As in the [GDAL geotransform convention](https://gdal.org/en/stable/tutorials/geotransforms_tut.html), a center lies half a cell along each grid axis:
```text
easting = 500000 + (column + 0.5) × 30
northing = 4102160 - (row + 0.5) × 30
```
`satelliteCellBounds` returns the projected edges; `cell.easting` and `cell.northing` give the center. For row 50, column 45, the bounds span 501350–501380 m east and 4100630–4100660 m north. The center is 501365 m east, 4100645 m north. These are not longitude and latitude.
The grid is authored and arbitrary. It does not depict the real place at those coordinates. Its 30 m spacing is neither a claim of physical sensor resolution nor positional accuracy. `registration: authored_grid_not_surveyed` states that limit explicitly.
This version supports north-up WGS84 UTM rasters, 2–16 bands and at most 262,144 cells. It does not support a rotated grid, arbitrary projection or automatic reprojection. Cell order is spatial, not temporal. No acquisition timestamp, orbit or platform ephemeris is supplied; document publication dates are not capture times.
3. Diagnose failures [#3-diagnose-failures]
Each flag changes only the runner's in-memory inputs. Every deliberate failure exits with status 1 before selected-cell output. Run one flag at a time.
Missing quality array [#missing-quality-array]
```sh
node check-satellite.mjs \
meridian/satellite-v1 \
--missing-quality
```
The profile requires both arrays. It reports `sources: failed` and `semantics: not_checked`:
```json title="Missing-quality issue"
{
"code": "SATELLITE_RASTER.SOURCE_BYTES",
"pointer": "/products",
"message": "Every retained source array is required for verification."
}
```
The runner also prints the source evaluator's report to standard error. Its external and content checks are `not_checked`, with no source issues, because bytes were withheld. The profile's stronger requirement produces the failure above. Supply the declared local quality bytes before retrying; do not assume missing quality means clear.
Changed source bytes [#changed-source-bytes]
```sh
node check-satellite.mjs \
meridian/satellite-v1 \
--changed-quality
```
This changes cell 4845 from clear to no-data but retains the original digest declarations. Source checking fails before raster content is read:
```json title="Changed-quality issue"
{
"code": "SATELLITE_RASTER.SOURCE.EXTERNAL.DIGEST",
"pointer": "product:quality",
"message": "Artifact digest differs."
}
```
The separate source report marks external and content checks failed, with code `EXTERNAL.DIGEST`. Restore the expected artifact or investigate the change through your normal source-revision process. Do not accept an unexpected file simply by replacing its digest.
Contradictory quality annotation [#contradictory-quality-annotation]
```sh
node check-satellite.mjs \
meridian/satellite-v1 \
--inconsistent-quality
```
This makes the same quality change and deliberately updates all three in-memory digest declarations: the observation product, acquisition artifact and source layout. Source integrity passes, but semantics fail:
```json title="Quality-content issue"
{
"code": "SATELLITE_RASTER.CONTENT",
"pointer": "/products",
"message": "No-data quality must use every band's declared no-data code."
}
```
The cell still contains six retained band values. Calling it whole-pixel no-data contradicts those values. Matching hashes establish which bytes were supplied; they do not make the annotations consistent. This is a controlled counterexample, not a repair procedure.
Rerun without a flag to recover the original passing result. No restoration step is needed because the scripts never change source files. Unsupported or extra arguments exit with usage status 2.
Sources and reproduction [#sources-and-reproduction]
The guide and portal use the same `satellite-v1` packet and source revision.
* [Canonical fixture, model and verifier](https://github.com/disclosurefoundation/disclosureos/tree/e19a89793871d23fb036e59c75ff83c86e21dfad/examples/satellite-raster)
* [Profile schema](https://github.com/disclosurefoundation/disclosureos/blob/e19a89793871d23fb036e59c75ff83c86e21dfad/packages/disclosureos-schema/src/experimental/v2/satellite-raster-profile-schema.ts), [evaluator](https://github.com/disclosurefoundation/disclosureos/blob/e19a89793871d23fb036e59c75ff83c86e21dfad/packages/disclosureos-schema/src/experimental/v2/satellite-raster-profile.ts) and [source reader](https://github.com/disclosurefoundation/disclosureos/blob/e19a89793871d23fb036e59c75ff83c86e21dfad/packages/disclosureos-schema/src/experimental/v2/satellite-raster-profile-reader.ts)
* [Runner notes](/examples/v2/satellite/README.md) and [full example-case download](/showcase/download)
The [shared equipment field reference](/v2/docs/reference/instruments) covers acquisition and measurement bindings, not this newer profile. Use the pinned definitions above for raster-specific fields.
Return to the [Instruments implementation overview](/v2/docs/instruments-overview) to choose another capture or profile. Use [Connect measurements](/v2/docs/bindings) when you need to attach a supported scalar value to an observation; a displayed raster cell does not automatically create that measurement binding.
# Renderers & support (/v2/docs/showcase-support)
The showcase includes working viewers for recordings, accounts, documents, materials and reviews. A **renderer** is the component that turns those inputs into a chart, reader or other interactive view. Use this guide to find one that fits your application.
The components ship as MIT-licensed source in the [complete example download](/examples/meridian.zip). They are React components in a Next.js application, not a separately published component package. Follow [Run the showcase](/v2/docs/showcase) to start the app with Node.js 22. No private portal credentials or unpublished standard package is needed to display the included example.
All inputs belong to the fictional DisclosureOS example case. The archive retains its original folder name, `meridian`. Each capture keeps its own source identity, timing and coordinate frame; appearing in the same collection does not establish a shared event or cause.
Choose a renderer [#choose-a-renderer]
Start with **what the file contains**, then check its units, timing and reference frame. The instrument's name alone is not enough: one radar can supply power arrays, detections and tracks, each with a different meaning.
| You want to display | Start with |
| ------------------------------------------------------------ | ----------------------------------------------- |
| Readings, images, waveforms or event counts | [Recording viewers](#recording-viewers) |
| Radar products, sonar, point clouds or satellite bands | [Survey viewers](#survey-viewers) |
| Accounts, document editions, specimens or laboratory results | [Readers and materials](#readers-and-materials) |
| Places, chronology or the collection's source files | [Case context](#case-context) |
| Attributed assessments, vocabulary or saved checks | [Reviews and checks](#reviews-and-checks) |
For an unsupported file, use [Formats & availability](#formats-and-availability) to present its identity and availability first. A standard-compliant record can refer to a file this viewer cannot decode. A file that renders successfully still needs the relevant standard and source checks.
The adapter boundary [#the-adapter-boundary]
A renderer does not replace a parser or a standard document. The reference application separates three jobs:
1. **Describe and check the source.** Standard documents identify the observation, capture, source artifacts and their relationships. Numerical source-selection documents declare layouts, axes and selectors. Optional sensor profiles add their own checks.
2. **Prepare the view.** An adapter reads those inputs and makes them usable by a component. Numerical readers verify supplied file fingerprints before interpreting the selected bytes; document and review views also use generated projections of their standard documents.
3. **Present and inspect.** The component controls layout, playback, selection and source inspection. URL state, colors and application projections are not additional standard contracts.
The downloaded `canonical-source-reader.ts` contains the shared layout reader. Sensor-specific `canonical-*-reader.ts` modules handle the expanded profiles. These copies come from the pinned standard implementations; use each packet's validator instructions to reproduce its checks rather than treating rendering as validation.
Follow one component [#follow-one-component]
Open [Original scalar readings at 90 seconds](/showcase?surface=desk\&view=instruments\&workspace=readings\&t=90\&channel=optical\&scalarPanel=selected). The optical reading is **39.92°**. Open its source to find `optical.csv`, row 11 including the header, and the associated measurement.
In the extracted download, follow these files:
* `viewer/src/components/showcase/scalar-instruments.tsx` renders the readings. Its `inspectReading` function connects the selected sample to its source row, measurement, instrument and calibration declaration.
* `viewer/src/lib/showcase/model.ts` supplies the application model and selection helpers. It loads the original case projection from `meridian.generated.json` in the same directory.
* `project.mjs` in the `meridian/` root creates that projection from the original packet. `observation.json`, `acquisition.json`, `bindings.json`, `measurements.json` and `optical.csv` retain the underlying record and source relationships.
The scalar component receives `selection`, `go` and `inspect`. `go` updates application selection; `inspect` opens the source detail. The callback types are in `shared.ts`. Other families have different inputs, so follow the selected component's imports rather than assuming a universal renderer API.
To change presentation, begin with the component and its styles. To use your own data, map one source file into the relevant standard documents, validate it, then generate the adapter's view. Editing `*.generated.json` alone changes the display without establishing a new valid record. Changing retained bytes requires updating their fingerprints and rebuilding affected documents, projections and library entries. Each source packet's README identifies its own validator and source revision.
Component map [#component-map]
Expand a viewer to find its implementation, retained inputs and main boundary. Search this documentation for a component filename or a topic such as “passive sonar” to return directly to its entry.
**Paths:** component filenames below are relative to `meridian/viewer/src/components/showcase/`. Input folders are relative to `meridian/`. Each folder is part of the download; these names are not npm imports. Keep a component's adapters, styles and shared dependencies when reusing it.
Recording viewers [#recording-viewers]
Field recordings
Play visible video alongside thermal arrays, an RF waterfall and weather. Inspect a pixel, frequency bin or fixed thermal region. Each numerical stream retains its cadence; browser video playback is not frame-exact scientific decoding.
* **Code:** `mixed-instruments.tsx`, `recording-data.ts`.
* **Inputs:** `recordings-v1/` and `recording-bindings-v1/source-selection.json`.
[Open this viewer](/showcase?surface=desk\&view=instruments\&workspace=mixed)
Original scalar readings
Select a time and channel, compare the three traces and open the exact source row. These are discrete readings. An optical angle does not supply distance or speed.
* **Code:** `scalar-instruments.tsx`.
* **Inputs:** the original CSVs and `viewer/src/lib/showcase/model.ts`.
[Open this viewer](/showcase?surface=desk\&view=instruments\&workspace=readings)
Sky & surroundings
Inspect sky pointing, aircraft reports and station geometry. Aircraft gaps remain visible. Clock alignment is unknown and station coordinates are local; a shared screen does not establish registration.
* **Code:** `spatial-instruments.tsx`, `spatial-data.ts`.
* **Inputs:** `spatial-v1/`.
[Open this viewer](/showcase?surface=desk\&view=instruments\&workspace=spatial)
Field signals
Select acoustic spectra, magnetic axes, delay/Doppler cells or IQ samples. The authored passive-radar map is separate from the IQ example; the viewer does not compute one from the other.
* **Code:** `field-signals.tsx`, `signal-data.ts`.
* **Inputs:** `signals-v1/`.
[Open this viewer](/showcase?surface=desk\&view=instruments\&workspace=signals)
Events & counts
Select a detector, time window or pulse-height bin. Inspect exposure and contributing rows. Zero counts during recorded exposure differ from unavailable coverage; pulse height is not a calibrated dose.
* **Code:** `event-bench.tsx`, `event-data.ts`.
* **Inputs:** `events-v1/`.
[Open this viewer](/showcase?surface=desk\&view=instruments\&workspace=bench\&benchFamily=counts)
Cameras & UV bands
Inspect UV and night-vision pixels, a thermal pair, polarity events or UV bands. Two grids do not imply camera registration. Preserve the declared sample meaning rather than treating every pixel as temperature or radiance.
* **Code:** `imaging-bench.tsx`, `imaging-data.ts`.
* **Inputs:** `imaging-v1/`.
[Open this viewer](/showcase?surface=desk\&view=instruments\&workspace=bench\&benchFamily=imaging)
Waveforms
Select waveform samples and spectrum bins, or inspect the slower pressure series. Playback is a reading aid; it does not change the source sample rate or make these separate captures simultaneous.
* **Code:** `waveform-bench.tsx`, `waveform-data.ts`, `reference-data.ts`.
* **Inputs:** `references-v1/`.
[Open this viewer](/showcase?surface=desk\&view=instruments\&workspace=bench\&benchFamily=waveforms\&referenceDevice=ultrasound)
Environment
Explore EMF, gas, particulate, lightning and IMU records with their units and gaps. Equivalent CO₂ is a modeled quantity. Body-frame acceleration does not become a geographic trajectory.
* **Code:** `environment-bench.tsx`, `environment-data.ts`, `reference-data.ts`.
* **Inputs:** `references-v1/`.
[Open this viewer](/showcase?surface=desk\&view=instruments\&workspace=bench\&benchFamily=environment\&referenceDevice=emf)
Biometric references
Inspect EEG, skin response, heart-rate/SpO₂, pupil and bit-sequence references. The physiology is synthetic, with no clinical interpretation. The deterministic bit example does not demonstrate randomness.
* **Code:** `biometric-bench.tsx`, `biometric-data.ts`, `reference-data.ts`.
* **Inputs:** `references-v1/`.
[Open this viewer](/showcase?surface=desk\&view=instruments\&workspace=bench\&benchFamily=biometric\&referenceDevice=eeg)
Camera context
Compare civilian, security, vehicle and phone camera settings alongside numerical frames. Preserve source pixel coordinates; orientation metadata alone is not a reason to silently rotate a selection.
* **Code:** `camera-context-bench.tsx`, `variant-data.ts`.
* **Inputs:** `variants-v1/`.
[Open this viewer](/showcase?surface=desk\&view=instruments\&workspace=bench\&benchFamily=cameras\&variantDevice=camera-civilian)
Other measurements
Inspect gravity, seismic, spectral, GNSS and clock examples. Display their separate units and availability states. A clock comparison does not establish that every recording has been corrected to that clock.
* **Code:** `measurement-bench.tsx`, `measurement-recording.tsx`, `variant-data.ts`.
* **Inputs:** `variants-v1/`.
[Open this viewer](/showcase?surface=desk\&view=instruments\&workspace=bench\&benchFamily=measurements\&variantDevice=gravity)
Formats & availability
Compare a readable table, a numerical array, an unsupported retained file, a deliberately changed copy and an absent source. No chart is invented for bytes that cannot be read or whose identity does not match.
* **Code:** `format-bench.tsx`, `format-recording.tsx`, `variant-data.ts`.
* **Inputs:** `variants-v1/`.
[Open this viewer](/showcase?surface=desk\&view=instruments\&workspace=bench\&benchFamily=formats\&formatExample=table)
Survey viewers [#survey-viewers]
Scanning, ground, civilian, airborne and shipborne radar
Step through authored scans, returns, detections and tracks. Scenarios retain their platform motion and context. Simulation truth is separate from measured products. The [Radar guide](/v2/docs/radar) explains the optional profile and its checks.
* **Code:** `radar-scanning.tsx`, `radar-scanning-workspace.tsx`, `radar-scanning-data.ts`.
* **Inputs:** `radar-scanning-v1/`, `radar-ground-v1/`, `radar-civilian-v1/`, `radar-airborne-v1/` and `radar-shipborne-v1/`.
[Open this viewer](/showcase?surface=desk\&view=instruments\&workspace=bench\&benchFamily=survey\&variantDevice=radar-civilian)
Military and secondary radar
Inspect military beam/dwell products or secondary-radar replies and reports. A cooperative reply is a reported message, not a primary-radar power return. See the [Radar guide](/v2/docs/radar) for the separate product relationships.
* **Code:** `radar-advanced.tsx`, `radar-advanced-workspace.tsx`, `radar-advanced-data.ts`.
* **Inputs:** `radar-military-v1/` and `radar-secondary-v1/`.
[Open this viewer](/showcase?surface=desk\&view=instruments\&workspace=bench\&benchFamily=survey\&variantDevice=radar-secondary)
Active sonar
Inspect pings, delay cells and derived detections. Range depends on the declared propagation assumptions. Use the [Active sonar guide](/v2/docs/sonar) to reproduce the profile checks.
* **Code:** `sonar-active.tsx`, `sonar-active-workspace.tsx`, `sonar-active-data.ts`.
* **Inputs:** `sonar-active-v1/`.
[Open this viewer](/showcase?surface=desk\&view=instruments\&workspace=bench\&benchFamily=survey\&variantDevice=sonar-active)
Passive sonar
Explore retained channels, spectral and bearing products with their processing declarations. Passive listening does not supply active ping range. The [Passive sonar guide](/v2/docs/passive-sonar) traces the products and retained bytes.
* **Code:** `sonar-passive.tsx`, `sonar-passive-workspace.tsx`, `sonar-passive-data.ts`.
* **Inputs:** `sonar-passive-v1/`.
[Open this viewer](/showcase?surface=desk\&view=instruments\&workspace=bench\&benchFamily=survey\&variantDevice=sonar-passive)
Lidar point clouds
Select a point or pulse; filter returns and inspect missing coverage. A pulse with no return is distinct from an unavailable pulse. The fixture supplies no pulse timestamps. Use the [Lidar guide](/v2/docs/lidar) for ray and return-group checks.
* **Code:** `lidar.tsx`, `lidar-workspace.tsx`, `lidar-data.ts`.
* **Inputs:** `lidar-v1/`.
[Open this viewer](/showcase?surface=desk\&view=instruments\&workspace=bench\&benchFamily=survey\&variantDevice=lidar)
Satellite rasters
Inspect bands, selected cells, quality flags and display composites. Changing the palette does not alter the source quantity. The [Satellite guide](/v2/docs/satellite) covers the grid, band and quality relationships.
* **Code:** `satellite.tsx`, `satellite-workspace.tsx`, `satellite-data.ts`.
* **Inputs:** `satellite-v1/`.
[Open this viewer](/showcase?surface=desk\&view=instruments\&workspace=bench\&benchFamily=survey\&variantDevice=satellite)
Readers and materials [#readers-and-materials]
Documents and source history
Search and compare editions, follow citations and inspect PDF page images. Text, PDFs and image derivatives retain separate identities. Release history and access checks are authored records, not live requests or recovered redactions.
* **Code:** `document-reader.tsx`, `reader-data.ts`, `report-facsimile.tsx`, `source-context.tsx`.
* **Inputs:** `reader-r2/`, `facsimiles-v1/` and `source-context-v1/`.
[Open this viewer](/showcase?surface=desk\&view=documents\&deskGroup=documents)
Accounts and their context
Read or compare accounts, listen to timed synthetic narration, inspect sketch features and follow qualifications and procedures. Narration time is separate from field time; a procedure declaration does not establish truth.
* **Code:** `document-reader.tsx`, `account-media.tsx`, `account-context.tsx`.
* **Inputs:** `reader-r2/`, `account-media-v1/` and `account-context-v1/`.
[Open this viewer](/showcase?surface=desk\&view=accounts\&deskGroup=accounts)
Specimens and laboratory
Follow custody and splits, inspect microscopy pixels and spectral rows, and read laboratory PDFs. Results stay attached to the exact specimen. Fictional imagery and modeled bands do not establish physical scale or chemical identity.
* **Code:** `specimen-workspace.tsx`, `specimen-data.ts`, `material-studies.tsx`, `material-study-data.ts`, `material-document.tsx`.
* **Inputs:** `specimens-r2/`, `material-studies-v1/` and `material-views-v1/`.
[Open this viewer](/showcase?surface=desk\&view=materials\&deskGroup=materials)
Case context [#case-context]
Collection and availability
Filter included files, inspect record and product identities, and follow gaps and access declarations. A retained file is not proof of a complete capture; editorial grouping does not create case membership.
* **Code:** `collection-inventory.tsx`.
* **Inputs:** `collection-v1/index.json` and its referenced packets.
[Open this viewer](/showcase?surface=desk\&view=overview\&overviewMode=collection\&deskGroup=setting)
Case chronology
Select an activity, inspect its date declaration and follow its source. The timeline covers selected activities, not every capture. Day-only dates retain that precision and independent captures remain separate.
* **Code:** `case-timeline.tsx`.
* **Inputs:** `timeline-v1/index.json`.
[Open this viewer](/showcase?surface=desk\&view=overview\&overviewMode=timeline\&deskGroup=setting)
Site and conditions
Filter stations, viewpoints and collection sites; compare held weather rows with attributed recollections. The local plan is not surveyed terrain, and no target location or Earth transform is inferred.
* **Code:** `site-context.tsx`, `recording-data.ts`.
* **Inputs:** `site-v1/index.json` and `recordings-v1/`.
[Open this viewer](/showcase?surface=desk\&view=overview\&overviewMode=site\&deskGroup=setting)
Source library and citation export
Search source text or labeled metadata, compare quoted passages and export citations. Uncited artifacts do not acquire invented edition or page locators. Library entries retain file identities rather than relying on labels alone.
* **Code:** `source-library.tsx`, `library-data.ts`, `report-comparison.tsx`.
* **Inputs:** `library-v1/index.json` over retained packets.
[Open this viewer](/showcase?surface=desk\&view=documents\&library=1)
Reviews and checks [#reviews-and-checks]
Assessments and vocabulary
Follow attributed reasoning, revisions and exact subjects. A catalog term is not a finding. An inconclusive assessment is not a probability or a manufactured ranking of origins.
* **Code:** `assessment-workspace.tsx`, `vocabulary-workspace.tsx`, `subject-reviews-workspace.tsx`.
* **Inputs:** `assessments-v1/`, `vocabulary-v1/` and `subject-reviews-v1/`.
[Open this viewer](/showcase?surface=desk\&view=assessments\&deskGroup=reviews)
Checks and calculation
Inspect saved receipts and reproduce the fixed copper mean. The viewer does not run arbitrary methods. Byte consistency, schema checks and arithmetic reproduction do not establish scientific validity.
* **Code:** `verification-workspace.tsx`, `reproduce-mean.mjs`.
* **Inputs:** `verification-v1/`.
[Open this viewer](/showcase?surface=desk\&view=assessments\&assessmentMode=verification\&deskGroup=reviews)
Gaps and disagreements
Compare missing-information states, alternatives and recorded selection rationale. Restricted examples retain public declarations only; the download does not contain a hidden private original.
* **Code:** `states-workspace.tsx`.
* **Inputs:** `states-v1/`.
[Open this viewer](/showcase?surface=desk\&view=assessments\&assessmentMode=states\&deskGroup=reviews)
Investigation and replies
Follow requests, replies, proposed actions and separate reviews through case-record and case-claim-history documents. An unanswered request stays unassessed. A proposed action is not completed work, and thread grouping is editorial.
* **Code:** `investigation-history.tsx`.
* **Inputs:** `investigation-v1/`.
[Open this viewer](/showcase?surface=desk\&view=overview\&overviewMode=investigation\&deskGroup=reviews)
Navigation around the renderers [#navigation-around-the-renderers]
The **Casebook** introduces the fictional case. The **research desk** opens its recordings, accounts, documents, materials, places/history and reviews/questions. Both entrances lead to the same source-backed views. A selected-view URL opens its workspace directly.
Use `casebook.tsx`, `research-desk.tsx` and `desk-navigation.ts` if you want the surrounding navigation. Use `showcase.tsx` and `viewer/src/lib/showcase/model.ts` to follow selection state and URL handling. This shell is application code; it does not add standard relationships or synchronize captures.
The recording viewers share `recording-surface.tsx`, `recording-transport.tsx` and `recording-information.tsx` for the surface, compact controls and source information. Numerical families use `recording-hooks.ts` for checked source loading. Keep the loading, error and unavailable states when adapting a viewer, along with its source-inspection actions.
The desk catalog searches workspace labels. **Source library** searches retained source text and metadata. Those are different tasks, and a new application can keep that distinction without copying the entire shell.
Input support [#input-support]
Support here means **the included reader understands the declared layout**. It does not mean every file with that extension, instrument label or standard record type can be opened.
| Delivered input | What this implementation handles |
| --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Numerical arrays and UTF-8 CSV | The shipped contiguous layouts and named table fields, with declared axes, cell/row selectors and file fingerprints. |
| Constant-rate video | Authored MP4 playback and declared frame intervals. Browser playback does not provide exact scientific frame extraction. |
| Events, tracks, points and raster bands | Authored products with explicit units, frames, gaps and profile relationships. Their fixture readers are not device drivers or live-feed integrations. |
| Text, PDF, SVG and WAV | Retained text, prepared PDF page images, illustrations and synthetic narration. A PDF download is separate from the rendered page-image derivative. |
| Reviews and methods | Attributed records, saved check receipts and one fixed numerical reproducer. There is no general method-execution or scientific-certification service. |
**Native formats need their own adapters.** The included examples do not supply native ASTERIX, LAS/LAZ, GeoTIFF, MiniSEED or EDF/BDF decoders, a native ADS-B feed decoder, generic OCR or arbitrary document conversion. Compressed or differently arranged arrays also need a compatible reader and layout. Preserve the original bytes and record any decoding or transformation separately.
For standard validation, use the published `2.0.0-beta.4` packages and the linked implementation guides. The five optional sensor profiles demonstrated here are included in that release. Retain each packet's source revision when regenerating its synthetic files. A sensor profile describes and checks its products; the renderer is an application supplied as source, not a separate npm component package.
Keep unsupported, changed and missing sources distinct [#keep-unsupported-changed-and-missing-sources-distinct]
The [format examples](#formats-and-availability) demonstrate a useful fallback:
* **Unsupported:** bytes are retained and their fingerprint matches, but no compatible reader is supplied. Show the identity and reason, with a download where available.
* **Changed:** the bytes differ from the expected source. Report that mismatch before displaying decoded values. A failed digest alone does not explain why a file changed.
* **Missing:** no source bytes were supplied. Show the absence; do not invent a fingerprint, a zero reading or a download.
For a source that is temporarily unavailable, preserve the request failure separately from those declared states and offer retry where appropriate. Do not relabel a network error as missing data in the standard record.
Verify the download [#verify-the-download]
Start with the [local setup and expected results](/v2/docs/showcase#run-the-viewer). From `meridian/viewer`, run `npm run check:bundle` to prepare source copies, verify file delivery and reproduce the fixed copper mean. Run `npm run build` to check the app build.
Those commands do not rerun every canonical validator or test every interaction. After adapting a viewer:
1. Validate the changed source packet using its own README and source pin. Rebuild affected projections and fingerprints.
2. Select a known row, pixel or event and compare the displayed value, unit and source locator with the retained input. Preserve the precision, uncertainty and unknown states supplied by that source.
3. Exercise unsupported, changed and unavailable input paths. Confirm that none silently becomes a valid zero or a reused result from another capture.
4. Check selection after reload and browser Back, rapid switching and slow loading. Review keyboard controls, narrow layouts and both themes, preserving authored data colors.
See [Run the showcase](/v2/docs/showcase#read-the-check-result) for a deliberate changed-file failure and recovery. The component map is an implementation starting point, not a certification that every browser, assistive technology or external format has been tested.
What remains open [#what-remains-open]
The download is a fixed reference application. It does not accept arbitrary dataset uploads, authenticate source providers, enforce private-data access or publish new records. Those services belong to the integration you build around the standard.
Per-component tests and selected desktop/mobile journeys are in place. Whole-experience screen-reader review, broader keyboard and cross-browser media checks, and measured performance budgets remain release acceptance work. Rendering a source or matching its fingerprint does not establish its scientific validity.
The [ELDÆON preview](/datasets/eldaeon/july-2026) displays available native sensor logs, passive-radar histories, video derivatives and EDF samples. Its inventory distinguishes received and missing files, and each view states unresolved timing, units or calibration. The [electric-field reading example](/v2/docs/eldaeon-reading) connects one source row to standard documents and reports the missing capture context. The supplied archive has not met the research-completion profiles; the fictional case does not establish that compatibility.
Continue with [Prepare a dataset contribution](/v2/docs/datasets) to gather a bounded source packet for an integration, or return to [Run the showcase](/v2/docs/showcase#implementation-notes) for detailed notes on each example.
# Run the showcase (/v2/docs/showcase)
Run the [DisclosureOS example case](/showcase) on your own computer, with the same viewers used by the portal. The download includes the application source, standard documents and retained source files. Everything in the case is fictional; it is separate from the ELDÆON dataset.
You need **Node.js 22 and npm**. Running the viewer does not require the portal repository, an account or unpublished DisclosureOS packages. Internet access is needed to install the application's dependencies.
Run the viewer [#run-the-viewer]
[Download the complete example](/examples/meridian.zip) and unzip it. The extracted folder is named `meridian`, the case's original working name. Keep its contents together: the viewer reads source packets beside the `viewer/` folder.
From the folder containing `meridian`, run:
```sh
cd meridian/viewer
npm install
npm run check:bundle
npm run dev
```
Open [localhost:3000/showcase](http://localhost:3000/showcase), or the local address printed by the server if that port is busy. You should see the Casebook entrance. Choose **Recordings**, then **Explore the recording**, to reach the research desk.
The source files are served by your local app. Standard, documentation and partner links lead to the public portal. The standalone shell uses system fonts; the research viewers share the portal's implementation.
To check a production build, stop the development server with Ctrl+C, then run `npm run build` followed by `npm start` from the same folder.
Read the check result [#read-the-check-result]
`npm run check:bundle` prepares local copies of the retained files, verifies those copies and checks the source library's file lengths and SHA-256 fingerprints. It then reproduces one fixed laboratory calculation. Both checks must pass for the command to exit successfully.
The first result includes these status fields, along with file and collection counts:
```json title="Delivery check · status fields"
{
"sourceIntegrity": "passed",
"canonicalValidation": "not_run",
"scientificValidation": "not_checked"
}
```
The second result reports `reproduced: true`: three authored copper values, **1.21, 1.25 and 1.29 mg/kg**, produce a mean of **1.25 mg/kg**. Its `uncertainty` remains `not_calculated`. The calculation does not derive the laboratory report's separately declared uncertainty.
| Check | What it establishes |
| ------------------- | ---------------------------------------------------------------------------------------------------- |
| File delivery | The prepared copies match the retained files, and indexed sources match their declared fingerprints. |
| Fixed calculation | The included method reproduces the saved expected result from its retained inputs. |
| Standard validation | Not run by this command. Each source packet records its own validator, inputs and source revision. |
| Scientific validity | Not established by matching bytes, rendering a chart or reproducing arithmetic. |
Try a changed file, then recover
Stop the viewer first. From `meridian/viewer`, add a newline to the **prepared copy** of the optical CSV. This exercise leaves the retained original intact.
```sh
node --input-type=module <<'JS'
import { appendFileSync } from 'node:fs';
appendFileSync('public/examples/meridian/optical.csv', '\n');
JS
node scripts/check-bundle.mjs
```
The direct check exits with status 1 and reports `Prepared source differs: optical.csv`. It checks the files already prepared, without copying them again.
Recover with:
```sh
npm run check:bundle
```
The preparation step restores this changed copy from the retained original, and both checks pass again. If you alter an indexed **retained** file instead, copying it cannot repair its fingerprint mismatch. Use a fresh download to restore that original.
Follow a reading [#follow-a-reading]
Open **Recordings → Original scalar readings** at the research desk. Choose **Optical** and set the time to **21:01:30 UTC**, or open [that selection locally](http://localhost:3000/showcase?surface=desk\&view=instruments\&workspace=readings\&channel=optical\&t=90\&cursor=90\&scalarPanel=selected).
The displayed value is **39.92°**. Use **Inspect source row** to connect it to the files at the root of `meridian/`:
| Layer | Where to look |
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| Source bytes | `optical.csv`, row 11 including the header: `2026-08-14T21:01:30.000Z,39.92,deg`. |
| Recorded measurement | `observation.json`, measurement `optical-9`: 39.92 `deg`, with declared standard uncertainty 0.2 `deg`. |
| Measurement connection | `measurements.json` names the product, optical channel and exact UTC capture time. |
| Capture context | `bindings.json` connects the observation product to the capture in `acquisition.json`. |
| Display | `view.json` derives the application's reading from those documents. The viewer consumes the same projection in `meridian.generated.json`. |
The three scalar channels retain their own units and samples at ten-second intervals. The display does not smooth them or establish a common physical source. The calibration declarations are fictional and unreviewed.
For a smaller exercise focused on these connections, use [Check a measured value](/v2/docs/worked-example).
How the viewer is built [#how-the-viewer-is-built]
Standard documents hold the research data. A projection makes selected parts convenient to display. Components render that projection and inspect retained source bytes. The projection and URL parameters belong to the application; they are not additional standard contracts.
| Inside the download | Purpose |
| ----------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| `observation.json`, `acquisition.json`, `bindings.json` and related documents | The original field record and its declared connections. |
| `fixture.mjs` and `project.mjs` | Author the original example and derive its application view. |
| `viewer/src/lib/showcase/` | Application models, generated projections and source readers. |
| `viewer/src/components/showcase/` and `viewer/src/mission/` | Research-desk components and shared recording visualizers. |
| `recordings-v1/`, `reader-r2/`, `specimens-r2/` and other source folders | Additional recordings, documents, materials and reviews, each with its own source notes. |
| `viewer/scripts/prepare.mjs` | Copies the adjacent source packets into the app's public directory. |
Start by changing presentation code in `viewer/` while preserving its data inputs. For your own recording, begin with one retained source file and one traceable measurement, using [Equipment and captures](/v2/docs/instruments) and [Connect measurements](/v2/docs/bindings). Then adapt a suitable renderer from the [support guide](/v2/docs/showcase-support).
The downloaded app is a fixed reference implementation. It does not import arbitrary datasets. A new integration needs its own source adapter, standard documents and checked projection. Keep displayed values derived from those sources, and retain unavailable information rather than copying the fixture's fictional declarations.
Regenerate the original projection
`regenerate.mjs` validates the authored fixture, writes the original source files and standard documents, then updates `view.json`, `validation.json` and the viewer's `meridian.generated.json`. From `meridian/`, after building the pinned checkout described in the next section:
```sh
node regenerate.mjs /path/to/disclosureos-source
```
This writes files; keep a separate working copy when experimenting. It regenerates the **original packet only**. Later packets and the source library retain fingerprints of their inputs. Changing those inputs requires rebuilding the affected dependent packets and projections too; running this one script does not update the entire showcase. Restart the viewer after preparing the changed files.
Validate a source packet [#validate-a-source-packet]
The download contains several independently versioned packets. Read the selected folder's `README.md` and `validation.json` before rerunning its checks. Use the exact standard-source commit named there, including any sibling packets the builder needs. Installing the published beta or using the latest source revision is not a substitute for that pin.
Run the original field packet's eight checks
Use Node.js 22, Git and Corepack with pnpm. From the folder containing `meridian`, prepare a separate standard-source checkout:
```sh
git clone https://github.com/disclosurefoundation/disclosureos.git disclosureos-source
cd disclosureos-source
git checkout c894a086e8326f048ba1806e7ba9d07556f16489
corepack pnpm install --frozen-lockfile
corepack pnpm build
cd ..
node meridian/verify.mjs disclosureos-source
```
The verifier reads the original downloaded documents and sources, compares them with the authored fixture and runs eight checks: observation, context, entities, history, acquisition, case, research history and measurement bindings. It also checks timestamps, units and values for all 72 scalar samples. An altered or missing original file fails this exercise.
Compare the output with `meridian/validation.json`. All eight results have `success: true`, while unchecked scientific and profile stages remain explicit. This receipt does **not** cover every later packet in the download. For mixed recordings, for example, use the separate `recording-bindings-v1` verifier and its own pinned checkout.
Implementation notes [#implementation-notes]
Choose the part you are adapting. These notes retain the source relationships, controls, assumptions and reproduction commands for each workspace. Folder names identify packet revisions, not separate npm releases.
Navigation and context [#navigation-and-context]
Casebook and research desk
The showcase opens with four Casebook chapters: the recording, the accounts,
the sample and the review. Each chapter opens an existing viewer at the research
desk. **Browse the full collection** skips the introduction and opens the collection
catalog. The desk groups workspaces into Recordings, Accounts, Documents,
Materials, Places & history, and Reviews & questions. On phones, use **browse
collections** to switch groups.
The desk's local search finds workspace names and descriptions. **Source library**
searches retained source text and metadata. **Build with it** connects the running
example to its download, components and documentation. These are different tasks,
so the interface labels them separately.
`casebook.tsx`, `research-desk.tsx` and `desk-navigation.ts` own this editorial
navigation. `surface`, `chapter`, `deskMode` and `deskGroup` are application URL
state, not standard fields. Existing links with a selected viewer still open that
viewer directly. Returning to the Casebook preserves source selections. The
chapter illustrations are editorial artwork; exact recordings and source files
remain in their respective viewers.
Inside a record
Detail pages use controls suited to their content. An account opens in a reader,
with a compact account chooser, text/audio/sketch presentation and a separate
comparison task. The specimen page leads with the selected portion, its own
results and handling; the collection tree is available on demand and the gallery
uses image thumbnails. The field recording keeps its view chooser alongside the
sticky playback controls. These controls retain the existing source selections
and URL fields. The other recording families, documents and reviews use their own detail controls within the same desk shell.
`record-picker.tsx` supplies a keyboard-accessible peer chooser. It closes after
selection, outside pointer interaction or Escape; Escape returns focus to the
trigger. The collection tree remains a native disclosure. Collection navigation
belongs to the desk, rather than being repeated above every material viewer.
Collection and availability
[Places & history → Collection & availability](/showcase?view=overview\&overviewMode=collection) connects
the retained collection sections to their workspaces and indexed source files.
`collection-inventory.tsx` loads the fingerprinted `collection-v1/index.json`
projection on demand. Its builder checks every library file, observation owner,
and acquisition/product join. The file detail verifies selected bytes again.
Browse a section or filter included files by content, declared product kind and
explicit deployment site. Metadata search includes instrument references and
manifest channel quantities. A shared source file can retain several products:
the weather CSV keeps both meters. Identical bytes in separate collections retain
their own observation context. Derived products without an acquisition do not
inherit a site, time or instrument from upstream inputs.
Inclusion is a delivery fact, not a completeness or renderer-support claim. A raw
product in Meridian is still synthetic. The availability view connects exact
half-open detector coverage gaps to their count windows, keeps missing exposure
separate from zero counts, and quotes the retained format-example declarations
for absent, unsupported and altered sources. It also exposes public-only access
declarations without supplying omitted source payloads. Unknown outage causes
remain unknown; a runtime verification failure does not rewrite source access.
Collection sections are editorial navigation over existing standard documents.
They add no canonical case membership; the existing membership declarations
remain inspectable in the timeline. Source inspection retains observation IDs,
source/product declarations, acquisition context and available edition citations.
The same projection and component ship in the standalone download.
URL state uses `overviewMode=collection`, `collectionMode=sections|files|limits`,
`collectionGroup`, `collectionQuery`, `collectionType`, `collectionKind`,
`collectionSite`, `collectionItem` and `collectionLimit`. Back, reload and library
return preserve these selections. Filters do not claim to search numerical values
or decode native formats. File results are rendered in batches of 20.
Site and conditions
Open [Places & history → The local site](/showcase?view=overview\&overviewMode=site)
to connect the local plan, accounts and measured station conditions.
The site projection is generated from existing, hash-checked sourcebook files.
It retains source records, observation identities and available canonical edition
citations from the library. Its six coordinates agree with the two station rows
in the spatial packet. Layer selection groups equipment, viewpoints and next-day
collection sites; it does not register any independent capture or locate the light.
The plan uses equal east/north scales. All declared up coordinates are zero;
the account's lower path, ridge and branch remain narrative descriptions. The
sky viewer's ideal flat horizon is a separate camera-display assumption. There
is no surveyed terrain or geodetic transform to overlay on a real map.
Expandable passages preserve exact source text and file line numbers. File lines
are application reading aids, not newly invented canonical locators. Existing
account edition/page citations remain available in the inspector and source library.
The weather table uses `weatherSamples` and the canonical product-source reader.
Each selected row retains its layout, measurement identity, instrument, unit and
timestamp. At a field cursor between samples, the preceding ten-second sample
is held with its age displayed; it is not interpolated. Both humidity meters stay
separate. Remembered wind, cloud, rain and visibility do not acquire sensor values.
Shared URLs retain `overviewMode=site`, `siteLayer`, `sitePoint` and the field
`cursor`. Source-library return preserves these selections. Direct record links
select the appropriate account, specimen or recording workspace. The public
download includes the same renderer, builder and retained sources.
Case timeline
Open [Places & history → Case chronology](/showcase?view=overview\&overviewMode=timeline)
to follow 26 selected activities across the recording, written accounts, specimen
work, report editions, reviews and case grouping. The display is an application
projection of existing canonical fields, not a new chronology contract.
Entity assertions supply account `recordedTime`, edition `issuedAt`, specimen
`collectionTime`, trace `recordedTime` and preparation/analysis `performedAt`.
Reviews use `evaluatedAt`; the case grouping uses `recordedAt`. These meanings
remain distinct. The field window comes from the observation's `eventTime`
interval. Artifact generation timestamps are not substituted for source dates.
Day-only declarations remain literal dates, without conversion to midnight UTC.
Activities are grouped by day, not scaled onto the four-minute recording.
Placement within a day does not assert an order for records without a time.
Unknown or redacted dates remain unplaced. The bounded builder refuses multiple
temporal assertions or unsupported precision rather than choosing a value.
Separate bench captures are not assigned to the field session.
Select an activity to inspect its exact canonical document, JSON pointer and
retained declaration. The input file must pass SHA-256 and length verification
before source inspection, the library handoff or contextual navigation is enabled.
The timeline projection itself is loaded lazily and hash checked; failure offers
retry without substituting a made-up date. `overviewMode` and `timelineEvent`
survive sharing, reload, Back and library return.
The grouping entry exposes the retained field and specimen observation references
and their membership basis. This does not create corroboration, a common cause,
a merged observation, or a new source record. Its onward link opens the existing
directed material-to-field review. Other links open the exact account, edition,
specimen or review, preserving the independent recording cursor.
The [timeline source guide](/examples/meridian/timeline-v1/README.md) and builder
ship with the standalone viewer. The original sourcebook chronology and all
underlying standard documents and source bytes remain unchanged. Site, availability and investigation views connect to this timeline without merging their records.
Recordings and source selection [#recordings-and-source-selection]
Explore the mixed recordings
The default workspace has four panels: a visible clip, a numerical thermal field, an RF waterfall and weather from two meters. All five instruments are fictional. Focus a panel, move the shared playhead, select a thermal pixel, rectangular region or radio bin, and open its source inspector. Each source retains its own cadence. Thermal and RF samples occur every two seconds; weather every ten seconds. The display holds the most recent sample and reports its sample time. Visible video has twelve frames per second.
The [recording manifest](/examples/meridian/recordings-v1/manifest.json) declares source hashes, byte lengths, array layout, units, models and limitations. Thermal values come from little-endian float32 arrays, never from image colors. The RF array contains power per bin, not spectral density. Environmental CSV rows retain both meter identities. The visible clip is synthetic, lossy H.264 imagery with a separate frame/time/pointing table.
The viewer verifies numerical source bytes against the manifest before displaying them. The current field loads a 192 KB thermal chunk. Full-recording analysis verifies all twelve chunks (2.304 MB total) and caches that fixed source set. Inspect a pixel to obtain its zero-based frame, row, column and byte offset; inspect a radio bin for its frequency edges and exact array offset. The pixel or region history covers all 120 frames, from 0 through 238 seconds. Video inspection identifies the requested frame interval; use a decoder for exact frame extraction rather than treating browser playback as a scientific decoder guarantee.
The bundle includes `recordings-v1/build.mjs`, its scenario input and a [source guide](/examples/meridian/recordings-v1/README.md). Regenerate these sources with `node build.mjs --write` from that directory, using Node 22 and ffmpeg with libx264. Numerical outputs are deterministic; encoded MP4 bytes may vary across ffmpeg builds, so the manifest records the encoder version and arguments.
**Validation scope:** the original eight-check receipt covers the original record packet and scalar readings. The mixed recordings now have a separate canonical record packet and source-selection evaluation, described below. The historical recording manifest retains its original wording and bytes. The original artifacts retain their original bytes. No scientific calibration, thermal/visible registration or common physical cause is established by this simulation.
Thermal region history
Choose **5 × 5 region**, then set the upper-left row and column and the width and height. The outlined rectangle stays in image coordinates across all frames; it does not track an object. Image clicks move its upper-left corner. A selection near an edge is clipped to the remaining rows and columns. **Single pixel** returns to a one-cell trace. The crosshair and upper readout always show the anchor cell; the history readout shows the region statistics.
Every selected cell is read with the existing canonical `array_element` selector. For each frame the viewer computes the equal-weight arithmetic mean, minimum and maximum in row-major order. It applies no smoothing, interpolation or rounding before calculation, and never omits a missing or non-finite cell. The line is the mean; the shaded band is spatial pixel spread, **not measurement uncertainty**. Physical calibration remains unknown.
The complete history appears only after all twelve source chunks pass SHA-256 and length checks. On failure the trace and export remain unavailable; retry preserves already verified sources. Changing the rectangle clears the previous result until the new calculation completes. The sample slider seeks the shared recording clock, including the final thermal sample at 238 seconds.
**Inspect region & method** exposes the exact per-cell canonical selectors for the selected frame, source product, chunk digest, unrounded statistics and method. **Download calculated history (CSV)** exports all 120 rows with region coordinates, source filenames, digests, local frame indices and method identifier `meridian-viewer-thermal-region-v1`. This is a view-derived calculation, not a new standard contract or an independent observation. The reproducible implementation is included at `viewer/src/components/showcase/thermal-region.ts` in the example bundle.
Shared URLs retain `pixel` (the upper-left cell), `thermalWidth`, `thermalHeight` and `cursor`. The color and history scales stay fixed at 18–24.5°C for this authored source. Two-camera thermal comparison is available under Cameras & UV bands. Native partner-format decoding remains later work.
Source-selection contract
The [mixed record packet](/examples/meridian/recording-bindings-v1/README.md) uses the standard's observation, acquisition-context, acquisition-bindings, measurement-bindings and **product-source-selection 0.1.0** contracts. Five instruments connect to sixteen raw logical products and one derived viewing video. All 120 weather values have canonical measurements and capture-time bindings.
The [source-selection document](/examples/meridian/recording-bindings-v1/source-selection.json) describes array encoding, axes, byte order, CSV row partitions and exact rational frame timing. Select `layout:thermal-04` with `array_element` indices `[5,20,33]` to read the pixel at 90 seconds: byte offset 102532, value 23.93558120727539 Cel. Select `layout:spectrum` with indices `[45,64]` for the RF bin at the same time. These are canonical selectors, rather than viewer-specific addressing conventions.
Both environmental meters share one CSV file. Each has a separate product layout with an exact `instrument` partition. Selecting the wrong meter's row fails the profile. The video remains a derived product with generator, scenario and frame-table inputs; it is not relabeled as raw sensor imagery.
The [mixed verification receipt](/examples/meridian/recording-bindings-v1/validation.json) checks 366 source selections: all weather measurements, a thermal pixel and RF bin across every sample, and first/middle/final video and metadata frames. Its source-selection checks pass. Full acquisition and measurement profiles remain incomplete because physical calibration and measured clock uncertainty are absent. No zero uncertainty is invented to obtain a pass. A video check validates bytes and the declared frame interval; media decoding remains `not_checked`.
The viewer consumes a projection of these canonical layouts and a byte-for-byte copy of the standard's dependency-free reader. `index.json` only maps product references to local filenames. Panel layout, colors and the held-sample playback policy stay in the application. The download includes the reader, JSON Schema, documents and verifier. These contracts and readers are published in Beta 4. To reproduce this packet from its generator, use the exact canonical commit in the packet README and run:
```sh
node /path/to/meridian/recording-bindings-v1/verify.mjs /path/to/disclosureos
```
This first profile supports contiguous numerical arrays, UTF-8 CSV records and constant-rate video declarations. Compressed scientific containers, variable-frame-rate video, strides and custom missing-value encodings require later profiles.
Spatial context
The **Sky & surroundings** workspace uses the additive [spatial packet](/examples/meridian/spatial-v1/README.md). Canonical observation, acquisition bindings and product-source selections connect four source instruments/references and three derived products. The [selection document](/examples/meridian/spatial-v1/source-selection.json) addresses every pointing, track, station and clock row plus the first and final all-sky frame. [Validation](/examples/meridian/spatial-v1/validation.json) passes 1,511 selections while physical acquisition profiles remain incomplete.
The 640×640 all-sky clip runs at six frames per second. Its pointing table and clip are derived products of the retained optical frame metadata, not independent observations. Its ideal equidistant projection shares the authored optical light trajectory; the [lens model](/examples/meridian/spatial-v1/lens-model.json) declares synthetic bearing and field-of-view assumptions. Neither image gives a distance.
Aircraft reports retain an **independent relative clock and Cartesian frame**. The source message IDs survive normalization to CSV; the 100–120-second gap is never interpolated. No geographical transform or alignment to the field clock is supplied, so the viewer has a separate aircraft scrubber and does not overlay the track on the sky. The [association review](/examples/meridian/spatial-v1/association-review.md) explains this boundary. These are fictional normalized reports, not a native ADS-B decoder.
Station positions retain the sourcebook's local frame: North (0,0,0), South (80,-120,0) metres. No GNSS fix is claimed. The [timing review](/examples/meridian/spatial-v1/timing-review.json) distinguishes the clock-offset model from unknown physical uncertainty; it applies no correction.
Shared links preserve `workspace=spatial`, `spatialPanel`, `cursor`, `aircraftSecond`, `skyAz` and `skyEl`. The same workspace and source packet ship in the downloadable viewer.
Field signals
The **Field signals** workspace adds pressure waveform and acoustic spectrum,
magnetic components and derived magnitude, and passive-radar map inspection.
It uses the same source-selection contract and reader as the other workspaces.
* [Source guide](/examples/meridian/signals-v1/README.md)
* [Generation and processing methods](/examples/meridian/signals-v1/methods.json)
* [Observation and derivations](/examples/meridian/signals-v1/observation.json)
* [Acquisition context](/examples/meridian/signals-v1/acquisition.json)
* [Measurement bindings](/examples/meridian/signals-v1/measurements.json)
* [Source selections](/examples/meridian/signals-v1/source-selection.json)
* [Validation receipt](/examples/meridian/signals-v1/validation.json)
The acoustic periodogram is calculated from the retained pressure samples using
800-sample periodic Hann windows at 100 Hz with a 400-sample hop. Exact inspected
values remain in Pa²/Hz; the heatmap applies a logarithmic display scale. Magnetic
magnitude is derived from the three retained components. Every magnetic component
has its own canonical measurement and capture-time binding.
Radar maps are authored in Doppler Hz and bistatic excess path length km. No
transmitter/receiver geometry, range/speed conversion or geographic track is
inferred. Map maxima use a declared selection rule, not a probabilistic detector.
The bounded IQ reference has an independent relative clock and **is not an input
to these maps**. This example supplies synthetic float32 products, not a decoder
for a provider's NDJSON, compressed or SDR formats.
Shared URLs retain `workspace=signals`, `cursor`, `signalPanel`, `acousticBin`,
`magneticAxis`, `delayBin`, `dopplerBin` and the independent `iqSample`. The field
cursor can select the final 100 Hz pressure sample at 239.99 seconds. Source
selection validates exact bytes and values; incomplete physical calibration and
clock characterization remain explicit in the acquisition checks.
Events and counts
**Recordings → Events & counts** contains additional captures within the Meridian research collection, including a Geiger counter and a muon-detector reference with independent, entirely synthetic event lists. These captures use an authored 15 August clock and retain their own playhead.
Select a ten-second interval in the count timeline, then a pulse-height bin to reveal contributing events. The source list preserves excluded muon-reference pulses when **All pulse heights** is selected. The histogram shows only events included by the declared rule. Selecting a histogram bin filters the event list; it does not change the interval's count or rate. An event opens its exact canonical table row, ID, timestamp, pulse height and authored coincidence flag.
* **20–30 seconds:** a recorded interval with zero events and a zero rate.
* **40–60 seconds:** no recording; count and rate are absent, and no histogram is shown.
* **80–90 seconds:** five recorded seconds; the rate denominator is five, not ten.
All intervals and histogram bins are half-open. Pulse height is in uncalibrated ADC units. No dose, energy, detector efficiency, dead-time correction or independently verified muon identity is inferred.
The [event packet](/examples/meridian/events-v1/README.md) contains [observation and processing records](/examples/meridian/events-v1/observation.json), [acquisition context](/examples/meridian/events-v1/acquisition.json), [bindings](/examples/meridian/events-v1/bindings.json), [canonical table selections](/examples/meridian/events-v1/source-selection.json), [methods](/examples/meridian/events-v1/methods.json) and a [validation receipt](/examples/meridian/events-v1/validation.json). All 106 source rows are checked. Derived count products reference retained event and coverage products; the viewer independently recalculates the counts and rates before displaying them. The histogram is a transient calculation over those same event rows.
The acquisition profile remains incomplete because physical calibration and timing characterization are absent. This example uses the existing CSV source-selection contract; it does not add a new event schema or implement native NDJSON decoding. The source packet and same renderer ship in the standalone ZIP. Shareable selections use `workspace=bench`, `benchDetector`, `benchWindow` and `pulseBin`; they preserve the field cursor independently.
Imaging bench
Open [Cameras & UV bands](/showcase?view=instruments\&workspace=bench\&benchFamily=imaging) for independent numerical UV/night-vision sequences, two thermal resolutions, a timestamped event camera, and three UV-band channels. These are compact synthetic reference products, separate from the Meridian field recording and detector-count bench.
The sticky playback control advances through 24 authored seconds. Select a source pixel with the image or keyboard row/column controls, follow its full-sequence trace, and inspect its canonical `array_element` locator. Capture settings resolve to their exact CSV row. Thermal A and B retain separate pixel coordinates; their common authored clock does not establish spatial registration or physical synchronization. Directly generated Celsius values are not a radiometric MJPEG conversion.
The event-camera view recomputes the retained accumulation from all x/y/polarity rows before rendering. Select a pixel to see its contributing row selectors; open individual events to inspect their exact source. Both polarity signs count positively. Second 12 deliberately demonstrates recorded zero events. Choose a 1, 2 or 4 second accumulation, with half-open bounds and the one-second event-rate history alongside it. Windows clip at the end of the retained recording; the rate uses actual exposure. Summed pixels retain each contributing canonical cell and event-row selector.
UV-band bars preserve UVA, UVB and UVC as separate uncalibrated ADC channels. There is no interpolation into a continuous spectrum or irradiance conversion. Fixed color and chart scales are presentation choices, not calibration.
The [imaging source guide](/examples/meridian/imaging-v1/README.md) documents the bounded representations and remaining native-format limits. [Observation](/examples/meridian/imaging-v1/observation.json), [acquisition context](/examples/meridian/imaging-v1/acquisition.json), [source selections](/examples/meridian/imaging-v1/source-selection.json), and the [validation receipt](/examples/meridian/imaging-v1/validation.json) are included in the same download as the renderer. Calibration and clock context remain explicitly incomplete.
Reference signals
The Recordings catalog includes [Waveforms](/showcase?view=instruments\&workspace=bench\&benchFamily=waveforms), [Environment](/showcase?view=instruments\&workspace=bench\&benchFamily=environment) and [Biometric references](/showcase?view=instruments\&workspace=bench\&benchFamily=biometric). Twelve compact synthetic examples extend the camera and detector benches.
Each device has its own local timeline and channel units. The sticky sample scan runs at ten samples per second for inspection, independently of capture cadence. Exact source selection, not screen pixels or interpolated chart values, drives the inspector. Shared links retain `benchFamily`, `referenceDevice`, `referenceSample`, `referenceBin` and `referenceWindow`; the Meridian field cursor remains separate.
* **Ultrasonic microphone:** 4,096 float32 samples at 384 kHz, displayed in 256-sample windows without decimation. Its retained 4,096-point DFT covers the entire 10.67 ms capture. A frequency-bin inspector exposes amplitude, transform method and every contributing canonical array selector. No audible derivative or pressure calibration is implied.
* **Microbarometer:** ten minutes of relative pressure, with one sample per second. This is a numerical pressure reference, not a MiniSEED decoder.
* **Environment:** magnetic flux density and RF power density, TVOC and equivalent CO₂, PM2.5, lightning times and distance estimates, and body-frame acceleration/angular rate. The gas example retains five unavailable readings. Traces stop at the gap. Equivalent CO₂ is not directly measured CO₂; lightning distance has no bearing; body-frame acceleration is not a trajectory.
* **Biometric references:** four fictional EEG channels, skin resistance, independent SpO₂/heart-rate scales, and left/right pupil diameters with a numerical eye schematic. No subject or clinical interpretation is present. No EDF/BDF or eye-video decoding is claimed.
* **Random-bit reference:** a deterministic 256-bit sequence, exact bit selection, 32/64/128/256-bit windows, sample count and fraction of ones. The count inspector exposes each contributing standard selector. Counts demonstrate reproducibility, not true randomness or a significance test.
The [source guide](/examples/meridian/references-v1/README.md), [methods and quantity definitions](/examples/meridian/references-v1/methods.json), [observation](/examples/meridian/references-v1/observation.json), [acquisition context](/examples/meridian/references-v1/acquisition.json), [canonical source selections](/examples/meridian/references-v1/source-selection.json) and [validation receipt](/examples/meridian/references-v1/validation.json) ship alongside the same renderer in the standalone ZIP. The spectrum's processing record links its retained waveform input. All 8,141 source selections validate against the existing contracts; physical calibration and clock characterization remain incomplete.
Instrument variants
Meridian is one fictional research collection. Its field study, imaging captures, detector sessions and other instrument activities share this presentation, while retaining their original source files, clocks and relationships. Collection membership does not assert a common object or physical cause. The original `case.json` continues to describe the original field-study record; this expanded collection is an application grouping, not a silent expansion of that case document.
The **Survey instruments**, **Camera contexts** and **Other measurements** families use the additive [variants packet](/examples/meridian/variants-v1/README.md). Its original twenty instrument/artifact examples connect observation products to acquisition context and canonical source selections. [Validation](/examples/meridian/variants-v1/validation.json) checks 1,517 retained selections. Structural, semantic and source-byte checks pass; physical calibration and clock characterization remain incomplete. All values are generated, and all models are declared in [methods.json](/examples/meridian/variants-v1/methods.json).
| Capture | Interaction and boundary |
| --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Original radar references | Select a detection, switch plan/profile, and inspect bearing, slant range, elevation and platform pose. Local east/north/up uses the declared transform. Each context has its own frame. Secondary replies and phased-array steering are authored metadata. |
| Original sonar references | Inspect authored return delays or a separate passive waveform. These initial references are distinct from the expanded sonar packets. |
| Lidar | Select a point in plan/profile; retain x/y/z and return intensity. No segmentation or terrestrial registration. |
| Satellite raster | Select a numerical pixel and inspect its geographic center and footprint edges. The declared WGS84 grid is not a GeoTIFF decoder or a real satellite acquisition. |
| Civilian, security, vehicle and phone cameras | Eight numerical frames per capture, with exact DN cells and separate per-frame exposure/motion settings. Phone orientation metadata remains visible; raw stored pixels are not silently rotated. |
| Gravity, seismic and optical spectrum | Inspect authored values and their source rows. Gravity differences, ground velocity and wavelength/intensity retain different units and meanings. No anomaly or chemical identification is inferred. |
| GNSS and clock | Select fix-quality metadata or clock offsets. Four absent GNSS fixes stay absent; no interpolation or cross-capture clock correction is applied. |
The expanded survey views use separate radar, active/passive sonar, lidar and satellite packets. Use their notes and profile guides for the current default visualizers; the table above describes the retained original variants.
The reference data reader is the same canonical implementation used throughout the showcase. Every table row is retained as a selector. Larger arrays retain a bounded set of example selectors, while the declared layout and reader support any in-bounds cell. Display geometry and pixel-center calculations are application methods over those exact source values.
Shared links preserve `benchFamily`, `variantDevice`, `variantSample`, `variantPixel`, `variantProjection`, `variantRange` and `formatExample`. They do not change the field recording cursor.
Expanded radar and sonar
The survey workspace includes seven radar scenarios, an active-sonar echo field and a passive-sonar analysis. These use their own source packets, rather than adding detail to the original `variants-v1` files.
| Viewer | Source packets | Implementation guide |
| ----------------------------------------------------------------------------- | ------------------------------------------- | --------------------------------------- |
| Scanning, ground, civilian, military, airborne, shipborne and secondary radar | The corresponding `radar-…-v1/` directories | [Radar](/v2/docs/radar) |
| Active sonar | `sonar-active-v1/` | [Active sonar](/v2/docs/sonar) |
| Passive sonar | `sonar-passive-v1/` | [Passive sonar](/v2/docs/passive-sonar) |
Each packet's README identifies its source revision, processing assumptions and reproduction command. The guides explain what each profile checks and include runnable examples. Use these declared models when adapting geometry, returns, detections or tracks; a display label alone does not supply platform motion, sound speed or an identification.
The [passive sonar example](/v2/instruments?recording=survey\&example=sonar-passive) shares its interactive frequency map, selected spectrum and source waveform with the downloadable viewer. Its optional [passive sonar profile](/v2/docs/passive-sonar) declares the analysis and its source windows.
Lidar survey
The [lidar example](/v2/instruments?recording=survey\&example=lidar) shares its linked spatial views, pulse register and source inspector with the showcase and downloadable viewer. The [optional lidar profile](/v2/docs/lidar) declares the point coordinates, return groups, intensity convention and authored surface labels.
The `lidar-v1` packet retains both the pulse register and point table. A pulse with no detected return remains distinct from a pulse whose result is unavailable. Each selected point keeps its exact source row across view changes and onward navigation. A separate point-only example, `lidar-legacy`, contains no pulse register.
Multiband satellite raster
The [satellite example](/v2/instruments?recording=survey\&example=satellite) shares its multiband map, selected-cell inspector and quality controls with the showcase and downloadable viewer. The [optional raster profile](/v2/docs/satellite) declares six bands, scaling, missing data and an authored UTM grid.
The `satellite-v1` packet retains both the band cube and quality grid. Natural color, infrared, individual-band and NDVI views inspect the same cell. Cloud and shadow values stay available for inspection but remain excluded from the derived index. A separate brightness-only example, `satellite-legacy`, contains no band or quality grid.
Format acceptance
**Format acceptance** exercises five fixed source states using actual byte verification:
* Declared CSV: the fingerprint and table layout pass, then an exact row is readable.
* Declared numerical array: the fingerprint and array layout pass, then an exact cell is readable.
* Unrecognized format: the artifact fingerprint passes, but no sample layout or renderer is supplied. Download remains available.
* Changed source bytes: an intentional test copy fails the original fingerprint. No chart or accepted-sample action appears.
* Source not supplied: no fetch or numerical result is invented.
This is a reproducible acceptance demonstration, not an arbitrary-file importer. ASTERIX, GeoTIFF, LAS/LAZ, MiniSEED, EDF/BDF and provider-specific compressed formats require their own adapters. A vocabulary token describes a sensor or method; it does not certify a native decoder. Existing CSV, float32 and media paths retain their own documented scope.
Accounts, documents and materials [#accounts-documents-and-materials]
Trace the other relationships
| Showcase interaction | Standard documents | Technical reference |
| ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ |
| Compare the two reported shapes | `context.json`, `entities.json`, `observation.json` | [Context](/v2/docs/context), [Testimony](/v2/docs/testimony) |
| Switch editions and inspect a cited page | `entities.json`, `history.json`, `report-a.txt`, `report-b.txt` | [Documents](/v2/docs/documents) |
| Select a sample and inspect its results | `specimens-r2/entities.json`, `specimens-r2/observation.json`, collection/handling/preparation/laboratory source files | [Physical samples](/v2/docs/physical-samples) |
| Compare current and earlier reviews | `history.json` | [Claims](/v2/docs/claims) |
| Inspect the case grouping | `case.json`, `observation.json` | [Records](/v2/docs/records) |
The research claim history and instrument evaluator use distinct history contracts. `instrument-history.json` is an explicit, empty history for the instrument checks; both histories reference the same observation snapshot. It does not discard or convert the research assessments.
The field report text uses form-feed characters to delimit pages. Review citations bind to an exact edition, artifact digest and page. In the earlier short packet, laboratory results bind to portion A. The expanded sourcebook binds its analysis to A1, with independent field-control and water-blank results. Select `sourceRevision=original` to inspect the earlier packet; those historical records have not been rewritten.
Read expanded reports and accounts
The [document reader](/showcase?view=documents) defaults to the additive
[`reader-r2` sourcebook](/examples/meridian/reader-r2/README.md). Report A contains
three substantial logical pages; B contains four. The text reader supports
contents, per-edition search, independent A/B page selection, figures, tables and
linked source files. The [account reader](/showcase?view=accounts) presents two
first accounts and Observer A's dated follow-up, with two explicitly authored
illustrations. Three accounts do not become three witnesses.
This packet uses existing observation, archival research-entities `0.2.0` and
archival claim-history `0.4.0` contracts at canonical commit
`88bcbfcc8b17af30837313aff596cec8e1bde43a`. Its
[entities](/examples/meridian/reader-r2/entities.json) identify witnesses,
accounts, source editions, creation/release events and digital artifacts. Its
[source assertions](/examples/meridian/reader-r2/history.json) use canonical
edition citations: entity-document snapshot, edition ID, artifact fingerprint
and logical page. An inspected paragraph additionally reports application line
positions and exact excerpt text. Those positions do not introduce a new
normative selector.
The source files are Markdown with explicit page boundaries, not PDF facsimiles.
The browser checks hashes and byte lengths before rendering text or illustrations.
The [receipt](/examples/meridian/reader-r2/validation.json) separates reference
validation from source authenticity and scientific validity. From the downloaded
`reader-r2` folder, with Node 22 and the built canonical checkout:
```sh
node build.mjs /path/to/disclosureos
```
The original short packet and its historical assessment citations remain intact.
`sourceRevision=original` opens that earlier reader; it must not be interpreted as
a citation to the expanded sourcebook. The richer specimen sources can be read
through report links, but their later analytical portion A1 does not replace the
original material workspace's portion A. PDF derivatives, synthetic account audio and the richer specimen workspace ship as separate packets; their source notes appear below.
Report facsimiles and file lineage
In **Documents**, **Page images** shows a generated PDF page for each authored report page. Edition A keeps three pages and edition B keeps four. Use thumbnails, width fitting or 150%/200% display zoom; compare independent pages in both editions; download the selectable-text PDF; or return to the original **Source text** view to search and inspect passages. The presentation, page selections and zoom survive shared URLs.
These are generated layout derivatives, not scans of acquired documents. The PDF has its own source edition, fingerprint and page citations. Each displayed page also retains an explicit mapping to the original Markdown citation. Equal page numbers do not make those two artifact identities interchangeable. Earlier assessment citations are unchanged.
Open **How this page was made** to follow authored Markdown → PDF → page image → thumbnail, with extracted PDF text as a separate branch from the PDF. Every file has its own hash and declared processing inputs. The conversion keeps source text unchanged while formatting emphasis, retaining local-link labels and normalizing typographic dashes/quotes. Figure geometry is retained with an explicitly mapped embedded font. PDF container metadata is newly authored and uses a fixed date for deterministic reproduction; that date is neither the report issue date nor a physical acquisition time. Declared creation/storage actions are illustrative, not independently authenticated custody.
The [source guide](/examples/meridian/facsimiles-v1/README.md), [conversion method](/examples/meridian/facsimiles-v1/conversion-method.md), [artifact inventory](/examples/meridian/facsimiles-v1/manifest.json), [archival entities](/examples/meridian/facsimiles-v1/entities.json), [PDF page citations](/examples/meridian/facsimiles-v1/history.json) and [validation receipt](/examples/meridian/facsimiles-v1/validation.json) ship with both the portal and standalone viewer. Existing observation processing and archival contracts represent the relationships. No PDF renderer dependency is required in the browser.
From the downloaded `facsimiles-v1/` folder, retaining its sibling `reader-r2/`:
```sh
node build.mjs /path/to/canonical-checkout
python -m pip install reportlab==4.4.9 svglib==1.6.0 pypdf==6.10.0
python render.py ../reader-r2 . --check
```
The Node build verifies pinned assets and canonical relationships. The Python check reproduces PDF bytes and checks every prose block, table cell and figure caption on its declared page. Page PNGs are retained Poppler derivatives with independent hashes; byte-identical rasterization across platforms is not promised. Source failures withhold the affected page image or verified PDF download and preserve a text fallback. Timed audio, sketch annotations, source history and the source library retain separate source packets, described in the notes below.
Account media and sketch annotations
The Accounts section offers **Written text**, **Listen**, and **Explore sketches**. Observer A’s first account has a complete synthetic reading, with eight paragraph intervals and a downloadable WAV and WebVTT transcript. Selecting a passage seeks to it; playing that passage stops at its end. Continue reading resumes uninterrupted playback. The selected paragraph is shareable, and opening a link never starts playback automatically.
This is a generated reading of retained fictional text, not an interview or an original voice recording. Audio time starts with the reading and is separate from the field-session timeline. Observer B and the follow-up remain written sources. The packet retains the same two witnesses and three account records.
Both first-account illustrations have three selectable features and display zoom. A mark opens its exact written paragraph and source inspection. The 720 × 440 illustration coordinates are application annotations, not measurement selectors. These authored drawings do not establish physical shape, distance or trajectory.
The [account media packet](/examples/meridian/account-media-v1/index.json) binds the synthetic audio to a separate source edition and canonical `time_range` citations. The original Markdown keeps its original digest and page citations. Observation processing records the text-to-audio and transcript derivatives. [The method](/examples/meridian/account-media-v1/method.md) explains how cue boundaries come from PCM frame counts; the retained verifier checks byte identity, exact paragraph wording and timing bounds. Regenerating a platform voice is not promised to reproduce identical audio bytes.
```sh
node account-media-v1/build.mjs /path/to/canonical
```
The portal and standalone viewer share these components. Damaged audio is withheld while the full text remains readable. Native audio controls, labeled feature buttons and the text view provide keyboard access. This is a bounded PCM/WAV example, not a general interview-import or transcription service. Qualification reviews, procedure examples, retelling highlights and witness-group variants are described under Account context and retellings.
Source context and release history
In Documents, **Source history** opens **Source details**, **Addresses & checks**, and **Release history** for either report or a separate administrative release example. Source details retain each field's attribution; inherited report assertions still point to the original text. Added catalog assertions point to the [authored catalog](/examples/meridian/source-context-v1/catalog.json). Display choices persist through shared URLs and browser Back.
The existing `source_edition`, `external_identifier`, `identifier_check` and `document_event` contracts represent this information. Each identifier names an exact source edition; each check names one identifier value assertion. Access and identity outcomes are displayed separately, with the latest dated result of each kind and the full earlier log. A reachable address can return the wrong edition. No check is different from an explicit unknown outcome. All addresses use the reserved `.invalid` domain and are never requested by the viewer. These are fictional recorded scenarios, not live network tests.
The [public extract](/examples/meridian/source-context-v1/release-note.md) demonstrates a visible withheld-field placeholder. The earlier working original is unavailable; no hidden contact value is shipped. Creation, marking, review and release events are tied to this separate administrative edition. They do not change the reports' markings or establish authenticity, government action, complete custody or release permission.
The [archival entities](/examples/meridian/source-context-v1/entities.json), [exact extract citation](/examples/meridian/source-context-v1/history.json), [method](/examples/meridian/source-context-v1/method.md), [source guide](/examples/meridian/source-context-v1/README.md) and [validation receipt](/examples/meridian/source-context-v1/validation.json) ship in the download. From its root, retaining the sibling `reader-r2/` snapshot:
```sh
node source-context-v1/build.mjs /path/to/canonical
```
Build the pinned canonical checkout first, as described in the source guide. Validation checks byte identity, structure and references; it does not verify the truth of the authored check outcomes. The portal and standalone viewer share the same implementation.
Account context and retellings
Accounts → **People & context** opens dated source declarations, separate qualification reviews, oath/procedure examples, and witness groups. Observer roles refer to 14 August 2026; the reading reviews are dated 22 August. Unknown professional status, aviation experience or years of experience remain unknown. No review authenticates a person or assigns a credibility score.
**Compare accounts** now adds four topic selections for A/B and A/follow-up comparisons. Each highlighted span comes from one exact retained paragraph. Both sides retain their source date, file fingerprint, line and canonical edition/page citation. The annotations are authored reading aids rather than an automatic semantic diff or exhaustive list of changes. The complete accounts remain available below. Observer A's later exposure to the first report and plots is explicit.
The four procedure examples cover a procedure not administered, a reported pass, a reported fail and unknown administration/result. They use the existing `procedure` entity's polygraph declaration, with explicit links to their exercise account and witness. The examples also demonstrate public-name, pseudonym and withheld identities; exact, approximate, estimated and unknown date declarations; and supplied/unknown oath states. They belong to separate fictional collection exercises, not the North/South event. A procedure outcome is not a determination that an account is true.
The field group has two named pseudonyms and three linked accounts. Separate aggregate examples show approximate attendance without named membership and an unknown count. Those examples do not add witnesses to the field event, establish independence or turn a reported total into individual records.
The [catalog](/examples/meridian/account-context-v1/catalog.json), [canonical entities](/examples/meridian/account-context-v1/entities.json), [reviews and citation history](/examples/meridian/account-context-v1/history.json), [method](/examples/meridian/account-context-v1/method.md), [source guide](/examples/meridian/account-context-v1/README.md) and [validation receipt](/examples/meridian/account-context-v1/validation.json) ship in the standalone download. From its root, with the sibling `reader-r2/` present:
```sh
node account-context-v1/build.mjs /path/to/canonical
```
Use the built canonical checkout pinned in the source guide. This reproduces the supplemental archival research-entity snapshot and claim history using existing contracts. Original reader assertions, dates and source bytes remain intact. The viewer verifies catalog and account source hashes before displaying context or highlights. URL parameters `accountMode`, `accountContext`, `accountTopic`, `procedureExample` and `groupExample` preserve selections in both the portal and downloaded app.
Source library and report comparison
Open **Source library** from any showcase view. The library indexes retained files across the collection, including the original reference, expanded reports, instruments, accounts, materials and archival exercises. Written Markdown/text sources are searchable in full. Other files are searchable by title, filename, collection, source description and fingerprint; numerical arrays, audio, video, images and PDFs are **metadata-only** entries. Search does not imply OCR or transcription. Report PDF text derivatives remain separately identified files.
Filter by source type, open a result, and select a page where an existing citation supplies one. The index and selected source must pass their SHA-256 and byte-length checks before source text or citation export is available. **Copy citation** includes readable attribution plus structured JSON; if clipboard access fails, a selectable text area and JSON download remain available. **Read in case** opens a report/account, while **Explore collection** takes other sources to their owning section. **Return to** preserves the originating view and selections. Search, source type, selected file and citation page also survive sharing or reload through `library`, `libraryQuery`, `libraryType`, `librarySource` and `libraryPage`.
`library-v1/index.json` is an application projection, not a new standard contract. Exports preserve available source/product declarations, the enclosing observation snapshot, existing canonical edition citations and the locations of their unchanged document snapshots. A file without an edition citation is exported as a whole-file reference, with no invented page or source identifier. Display excerpts retain their exact source text and line span as application annotations. Equal bytes in separate packets keep separate inventory entries and record context. The index includes declared source inventories and standard documents, not every build helper in the download.
In **Documents → Compare editions**, three selected comparisons follow the interpretation (A2/B3), account clarification (A2/B3) and specimen results (A3/B4). Each highlight is checked against its exact source paragraph during generation and opens its complete page. `reportTopic` preserves the selected comparison. Highlights are editorial reading aids rather than exhaustive diffs or new research claims. The retained short-example assessments continue to cite the original reports; expanded report annotations never rewrite those earlier inputs. The expanded assessment workspace below declares its own source snapshots.
The standalone viewer includes the same library, context packets and controls. The library builder checks all declared file hashes, resolves exported edition references against retained entity snapshots and reproduces the shipped index.
Follow a specimen
The default Materials view uses [specimens-r2](/examples/meridian/specimens-r2/README.md): seven materials, an uncollected trace, two preparation steps, six declared custody actions and five laboratory results. The parent M-014 is split into A and B; A is then divided into analytical A1 and a retained remainder. The field control and water blank are independent specimens.
The [entity document](/examples/meridian/specimens-r2/entities.json) uses the existing research-entities 0.4.0 contract. Results belong to exact analysis inputs. A1 results never appear as results of its parent or siblings. Copper values retain their standard uncertainties; lead and water-blank bounds remain below-limit reports, not zero. The water blank uses mg/L and is not plotted with the soil results in mg/kg. No enrichment or statistical significance is inferred from the comparison.
Nominal masses and volume are sourced observation measurements. Attributed source statements identify each specimen. `index.json` maps the material inventory row to its measurement for the application; this is not a new material-mass field in the standard. The amounts describe initial authored allocations, not current remaining balances. They are not summed across parent and descendants.
The collection gallery retains two AI-generated illustrations with [exact prompts and hashes](/examples/meridian/specimens-r2/artwork.json), a deterministic label drawing, and the authored local site plan. Artwork is not a photograph, calibration, weighing or compositional measurement. Gallery context always describes the parent at collection, not a selected child specimen. Source images and replicate rows are verified before display. The projection is generated only after canonical structural and relationship checks; the [receipt](/examples/meridian/specimens-r2/validation.json) does not authenticate custody or assess scientific adequacy.
From the downloaded `specimens-r2/` directory, run `node build.mjs /path/to/canonical-checkout` after building its pinned checkout. This reproduces the documents and projection from retained sources. It retains image bytes rather than attempting deterministic AI image generation. The portal and standalone viewer use the same specimen workspace. The supplemental material-studies packet below adds microscopy-style numerical imagery, a modeled spectrum, mixtures, material classes and custody edge cases. Material PDF facsimiles, parent-gallery zoom and trace context are described below.
Material documents and collection views
The Materials collection workspace offers two-page **Collection sheet** and **Laboratory report** PDFs. Each reproduces the complete retained source text, with the laboratory result table intact. Switch pages, enlarge the page, download the verified PDF or open accessible source text. Document/page/zoom selection is shareable in the URL. Viewing a report while a parent or retained portion is selected does not assign its laboratory results to that portion.
The [material document guide](/examples/meridian/material-views-v1/README.md), [conversion method](/examples/meridian/material-views-v1/conversion-method.md), [file inventory](/examples/meridian/material-views-v1/manifest.json), [archival entities](/examples/meridian/material-views-v1/entities.json), [page citations](/examples/meridian/material-views-v1/history.json) and [validation receipt](/examples/meridian/material-views-v1/validation.json) retain the exact artifacts and relationships. The original source files remain unchanged. Each generated PDF has its own edition, separate from the original Markdown; PDF page numbers are not invented for that Markdown. Source issue dates remain separate from fixed PDF container dates.
The parent gallery supports fit, 2× and 4× enlargement with keyboard-scrollable image exploration. The T-014 trace includes a dedicated authored schematic and direct navigation to the collected soil and independent control. The trace detail is not to scale; the site inset uses the retained fictional local positions. Neither image supplies a physical measurement or establishes an age or cause.
From the downloaded `material-views-v1/` directory, retaining sibling `specimens-r2/`, run `node build.mjs /path/to/canonical-checkout`. With ReportLab 4.4.9 and pypdf 6.10.0 installed, `python render.py ../specimens-r2 . --check` reproduces PDF bytes and checks every paragraph/table cell on its assigned page. PNG previews retain their own digests; no cross-platform pixel reproduction is claimed. The portal, source library and standalone viewer include the same files and controls.
Microscopy, spectra and material reference
The **Materials** view offers the original collection, **Microscopy & spectra**, and a **Material reference**. Both laboratory products explicitly describe prepared portion A1. The original specimen snapshot and historical results remain unchanged; belonging to the same specimen does not establish agreement between independently authored studies.
The [material-studies source guide](/examples/meridian/material-studies-v1/README.md) retains the generator, model and source sheets. Its [research entities](/examples/meridian/material-studies-v1/entities.json), [attributed band labels](/examples/meridian/material-studies-v1/history.json), [source selections](/examples/meridian/material-studies-v1/source-selection.json) and [validation receipt](/examples/meridian/material-studies-v1/validation.json) use the existing canonical contracts.
* **Microscopy-style field:** a generated 96 × 96 float32 relative-intensity array. Select a feature or any pixel, move with arrow keys, zoom the display and inspect the exact array selector and byte offset. There is no acquired microscope image, physical scale, grain-size measurement or mineral identification.
* **Spectrum:** 201 retained CSV rows of relative response versus wavenumber. Select a row or an attributed band label and inspect its values, source and exact A1 analysis. The dashed reference is the generator's baseline model, not an acquired blank. Values are not calibrated absorbance or concentration; band labels do not assign chemicals. The image and spectrum are independent models.
* **Material reference:** all eight material types and four trace types have named examples. New specimens include collection, packaging, declared handling and source-authored qualitative review. The unused training insert has no bodily association; the biological example is fictional plant tissue. Uncollected traces have no specimen mass, custody chain or laboratory result.
* **Mixture and custody:** select either soil input and then the separately identified mixed output. The preparation names both inputs, while its nominal 2 g + 3 g allocations do not certify recovery or current balance. A separate debris record explicitly preserves unknown custody before receipt.
The product-to-analysis association is an application projection from the retained laboratory source report, not a new normative field. Existing research-entity contracts bind analyses and results to specimens; existing product-source-selection contracts bind displayed cells and rows to bytes. The receipt checks all 201 spectral rows and 100 retained image positions. Arbitrary browser pixel selections use the same canonical reader.
With the built canonical checkout pinned in the source guide and the sibling `specimens-r2/` directory retained, run this inside the downloaded `material-studies-v1/` directory:
```sh
node build.mjs /path/to/canonical-checkout
```
This reproduces the numerical sources, standard documents and projection. The standalone viewer includes the same interactions.
Reviews and reproducibility [#reviews-and-reproducibility]
Expanded assessment reasoning
**Assessments → Read a review** presents three substantive, attributed reviews: the initial shared-source question, its revision, and an independent separate-sources explanation. Each exposes its exact rationale, comparison sources, limits and proposed follow-up. **What changed** compares the first two source sets and preserves the earlier wording. **How it was reviewed** explains the qualitative method and its limits.
The revised claim supersedes only the initial claim from the same review team on the same topic. The alternative has a separate author and topic. Current means current in this history, not correct or established. All three outcomes remain inconclusive; no probability, confidence score or authenticity finding is inferred.
The [assessment packet](/examples/meridian/assessments-v1/index.json) retains the exact authored review sections from the expanded sourcebook, the exact report/account editions and the original scalar CSV files and generator. These dated reviews do not silently incorporate later instrument or laboratory examples. The original short-example history remains unchanged and is still available from the workspace.
The visible source-set comparison covers the records being compared. Each canonical claim additionally retains its method, the authored catalog of reading aids and a source assertion containing the verbatim review note. **Inspect assessment** exposes the complete claim. Contribution notes and text line ranges are application reading aids, not computed weights, support/challenge relationships or new normative source locators. Written sources retain existing edition/page citations; scalar files retain whole-file source references.
The [history](/examples/meridian/assessments-v1/history.json), [method](/examples/meridian/assessments-v1/method.md), [source guide](/examples/meridian/assessments-v1/README.md) and [validation receipt](/examples/meridian/assessments-v1/validation.json) ship in the standalone download. From the download root, retaining `reader-r2/` and the original `sources/`, `fixture.mjs` and `history.json`:
```sh
node assessments-v1/build.mjs /path/to/canonical
```
Use the built canonical checkout pinned in the source guide. Existing observation, archival entity and claim-history contracts validate the packet, including exact editions and same-evaluator supersession. The receipt checks structure, references and retained bytes; it does not establish scientific validity or source authenticity. The portal and standalone viewer lazily load the same hash-verified projection and verify a selected source before displaying it. Review, mode and source choices survive URL sharing and browser Back.
This section covers observation-level qualitative reasoning using contracts published in Beta 4. The following sections cover catalog exploration, precise review subjects and a reproducible calculation.
Observable and origin exploration
**Assessments → Observables** exposes the complete 12-entry technology and biologics catalog. **Origin hypotheses** exposes all 96 nodes of the proposed origin framework, with hierarchy navigation, search and category filters. Catalogs are retained from the pinned canonical source and checked against the same definitions used by the technical documentation. The twelve observable definitions and shared vocabulary APIs are published in Beta 4. Inspect or download the complete definition, including scientific explanations, signals, methods, references, aliases and any caveat.
The origin framework retains its attribution to Col. Karl Nell, *Proposed Taxonomy of UAP Origin Hypotheses*, Sol Foundation Symposium, Stanford University, November 2023. Its testability flags are framework declarations. Inclusion, including speculative entries, does not establish a test, scientific consensus or an explanation for Meridian.
Two observable terms and three origin nodes have fictional reviews dated 13 October. Each uses the existing canonical assessment contract with an inconclusive outcome, an attributed evaluator, a declared method and exact source inputs. The observable reviews distinguish angular motion from physical acceleration and examine whether differing accounts establish a comparable sensor-detection difference. The three origin questions concern optical/viewing effects, celestial or orbiting sources, and conventional human-operated sources. **Compare three example questions** displays the rationale, missing checks and proposed discriminating work side by side without a rank, probability or default winner.
Other entries show **Not assessed**, meaning no assessment is included for that entry in this packet. This is not an absence finding, rejection or failed documentation profile. A selected origin leaf does not confer an assessment on its parent, children or siblings. The material examples do not establish a biological specimen or a biologics finding.
The [catalog](/examples/meridian/vocabulary-v1/catalog.json), [authored reviews](/examples/meridian/vocabulary-v1/reviews.json), [canonical history](/examples/meridian/vocabulary-v1/history.json), [method](/examples/meridian/vocabulary-v1/method.md), [source guide](/examples/meridian/vocabulary-v1/README.md) and [validation receipt](/examples/meridian/vocabulary-v1/validation.json) are included in the source library and standalone ZIP. These dated reviews use exact copies of the sourcebook and original scalar inputs retained in `assessments-v1`; later instrument and laboratory examples are separate captures. The vocabulary packet is updated directly to the revised V2 baseline.
The catalog-entry-to-claim association uses the standard’s shared `vocabulary_bindings` contract. Each binding identifies the exact catalog revision, catalog bytes, term and claim-history snapshot, with attribution for the association. The subject and supporting source inputs remain separate. The canonical evaluator resolves supplied documents and terms without fetching a catalog from the network. It does not authenticate sources, execute suggested tests, validate the catalog’s scientific statements or compute probabilities. See [shared vocabulary references](/v2/docs/observables#connecting-a-term-to-a-claim) for descriptive associations and declared assessment criteria. Display contribution notes, limits and proposed follow-up remain authored reading aids.
From the downloaded root, retaining the sibling `assessments-v1/` folder and using the built canonical checkout pinned in the source guide:
```sh
node vocabulary-v1/build.mjs /path/to/canonical
```
The portal and standalone viewer verify the catalog projection and each opened source. Search, category, selected entry and origin-comparison state are retained through `catalogQuery`, `catalogFilter`, `catalogEntry` and `catalogCompare`; `assessmentInput` selects a review source. Corrupt source bytes withhold the source reader. The following sections cover precise review subjects and a reproducible calculation. The standard APIs used here are published in Beta 4; the viewer is supplied as source.
Precise subject reviews
**Assessments → Specimens & relationships** presents five fictional reviews: a lead-result field, the analytical portion A1 before and after a revision, the parent specimen's handling, and a directed material-to-field corroboration question. Each review shows its exact subject, attributed reasoning, limitations, next checks and declared inputs. **Inspect exact subject** opens the existing canonical reference and resolved field or record.
The field review targets only `laboratory_result/lead-a1/result`. It retains the below-limit declaration and threshold without inventing a numerical concentration. Specimen reviews use whole-entity subjects; results stay attached to the tested portion. Material-review contamination and representativeness declarations remain unknown. The initial and revised A1 claims share one subject, topic and evaluator; the revision adds preparation, result-table and repeated-value inputs while retaining the earlier report-only review. Both use the same specimen snapshot, so the comparison does not claim the other sources did not yet exist.
The case claim uses the standard's directed `case_relation` subject. It asks whether the material record corroborates the pinned field observation and remains inconclusive. Case membership is organizational: no relationship fact, reverse corroboration, observation merge or publication change is performed. The new case retains the original field observation and a separate specimen observation with the qualitative review method. Original case, specimen and history bytes remain under `retained/`.
The [laboratory history](/examples/meridian/subject-reviews-v1/history.json) uses laboratory claim-history 0.5.0 and entities 0.4.0. The [case history](/examples/meridian/subject-reviews-v1/case-history.json) uses case claim-history 0.1.0. `subject`, `entityInputRefs`, `materialReview`, `caseInputRefs`, `observationInputRefs` and `supersedes` are existing standard contracts. Display labels and resolved reading aids are application projections. Later microscopy and spectral examples are outside these declared input sets.
The [authored reviews](/examples/meridian/subject-reviews-v1/reviews.json), [method](/examples/meridian/subject-reviews-v1/method.md), [source guide](/examples/meridian/subject-reviews-v1/README.md) and [validation receipt](/examples/meridian/subject-reviews-v1/validation.json) ship in the source library and standalone download. The builder verifies manifest-listed source bytes and invokes both canonical evaluators for reference and revision checks. Other artifacts mentioned by a retained observation are outside this packet's byte checks. Scientific validity, physical custody and authenticity are not checked.
From the download root, retaining `specimens-r2/` and the original field observation, case and station log, use the built canonical checkout pinned in the source guide:
```sh
node subject-reviews-v1/build.mjs /path/to/canonical
```
The portal and standalone viewer verify the projection and each selected source before exposing its text or download. `assessmentMode=subjects`, `subjectReview`, `subjectCompare` and `assessmentInput` preserve the selected review, revision comparison and input through shared URLs and Back.
Gaps and disagreements
The Assessments workspace includes nine fictional companion observations for missing, approximate, conflicting and restricted values. They use existing observation envelopes, source assertions, selections and access declarations. They do not revise the original Meridian field session.
Unknown values retain the reasons `not_recorded`, `not_collected` and `unavailable`. An approximate date keeps its calendar precision. The conflicting-time example preserves both attributed declarations without selecting or averaging them. A separate indexing example shows an explicit selection with its method, evaluator, rationale and considered assertions. Selection does not establish clock accuracy.
The restricted, withheld and unknown-access examples export a redacted position and only a source identifier, kind and access state. The bounded exporter does not copy internal coordinates, source URLs, titles, hashes or assertions. No underlying location register is included in the page, library or ZIP. The downloadable public JSON contains only the declaration. This example is not a general sanitizer or an authorization service; a production integration needs a field-specific public export policy.
The view also links to existing exposure-aware counts, below-limit laboratory results, unsupported files and integrity failures. These remain distinct from unknown values. Integrity failures display an error and no invented data; source-access labels alone never grant access.
Use `assessmentMode=states&recordState=conflict` on the showcase route to share a selected example. Unknown selections fall back to the first example. The public `states-v1` packet includes exact companion records, timing notes and a canonical validation receipt. Its inventory observation groups the files without combining their event times. Each indexed companion retains its own observation identity.
```sh
node states-v1/build.mjs /path/to/pinned-disclosureos states-v1
```
The pinned standard checkout and build requirements are the same as the verification packet below. Public source notes describe the examples in [states-v1/README.md](/examples/meridian/states-v1/README.md).
Investigation and replies
Open [Reviews & questions → Investigation & replies](/showcase?view=overview\&overviewMode=investigation)
to follow three authored fictional questions: recording alignment, specimen scope
and a request for additional capture metadata. Two have custodian replies and
inconclusive reviewer assessments; the third retains no reply and stays unassessed.
Proposed next actions are not recorded as performed work.
`investigation-v1/` uses the existing case-record and case-claim-history 0.1.0
contracts at pinned canonical commit `88bcbfcc8b17af30837313aff596cec8e1bde43a`.
Each request is a `source_assertion` targeting an `investigation`; each reply is a
`response_event`; each review is a separate assessment with exact reply assertion,
source and method references. There is no canonical request-response edge in these
contracts. The question grouping is explicitly editorial navigation.
Pinned `questions.json` and `method.md` generate the fictional `correspondence.txt`
and `review-log.md`. The packet retains the earlier field, specimen and case bytes,
adds a separate observation containing workflow sources, and emits a new case
snapshot. Earlier membership, reviews and measurements remain unchanged. The
source observation is not a new physical capture or an additional field member.
Message dates have day precision; the assigned packet `recordedAt` instant is not a
send or receipt time. No real person or organization was contacted.
The lazy-loaded `investigation-history.tsx` verifies the projection, case, history,
correspondence, review log, method and selected retained review before showing the
thread or its actions. Sources can be inspected or opened in the searchable
library. `overviewMode=investigation` and `investigationQuestion=timing|specimen|capture`
survive reload, Back and library return. The case timeline links the dated requests,
replies and assessed reviews into the same question view.
The [packet guide](/examples/meridian/investigation-v1/README.md) describes reproduction.
Canonical evaluation checks contract and reference consistency. It does not verify
authenticity, scientific interpretation, completion of proposed work or the
existence of additional data outside this fictional packet.
Verification and reproducible calculation
**Assessments → Checks & calculation** separates saved standard-validation receipts from a calculation the reader can run. **Recorded checks** presents three runs: the precise specimen reviews, the material-to-field relationship history, and a new calculation observation. Each shows the evaluator's structural, semantic, external and profile statuses, its exact checked snapshots and the pinned canonical implementation. External means resolution of supplied cross-record snapshots, not outside scientific review. No documentation profile or score policy was applied; no overall scientific grade is displayed.
The specimen and case evaluators rerun against byte-identical snapshots from `subject-reviews-v1`. The calculation record uses existing observation `methods`, `processing` and derived `products` contracts. The artifact's specimen label and arithmetic result are application content, not a new standard measurement or normative cross-observation binding. The builder compares its mean and units to the existing `copper-a1` measurement without rewriting that measurement or its separately declared uncertainty.
**Reproduce a result** uses exactly three authored values for analytical portion A1: 1.21, 1.25 and 1.29 mg/kg. The fixed method sums decimal hundredths as integers before dividing by 100 and three, producing 1.25 mg/kg. It rejects missing values, other units, other specimens and unsupported table shapes. The original ±0.08 mg/kg standard uncertainty remains a source declaration; it is not calculated from these repeated values.
The browser bundles the same fixed method file included in the [verification packet](/examples/meridian/verification-v1/index.json). It verifies the input CSV, retained method artifact and expected-output bytes before enabling reproduction, then compares the complete result with the saved expectation. It executes no uploaded code, remote script or user-supplied expression. The material page's mean uses the same function. A reload or shared link preserves the selected view and inputs, but never carries forward a browser success state. The button does not rerun the Node-based standard validators.
Download the complete example and run this from its root with Node 22; no dependency installation or canonical checkout is required for the bounded arithmetic check:
```sh
node verification-v1/reproduce.mjs
```
The [source CSV](/examples/meridian/verification-v1/replicates.csv), [fixed implementation](/examples/meridian/verification-v1/reproduce-mean.mjs), [expected output](/examples/meridian/verification-v1/expected-output.json), [method](/examples/meridian/verification-v1/method.md), [calculation observation](/examples/meridian/verification-v1/observation.json) and [receipt](/examples/meridian/verification-v1/validation.json) are retained in the source library and ZIP. To rerun canonical checks, use the pinned, built checkout and the sibling source packets described in the [source guide](/examples/meridian/verification-v1/README.md):
```sh
node verification-v1/build.mjs /path/to/canonical
```
`assessmentMode=verification`, `verificationMode`, `verificationRun` and `verificationInput` retain the chosen view, check and input. The checks apply only to their listed records and manifest files. Artifacts merely referenced inside a record are not fetched. Successful reproduction is not source authentication, physical custody verification, laboratory validation or support for an unusual origin.
What this demonstrates [#what-this-demonstrates]
The example connects recordings, accounts, documents, material lineage and attributed reviews. It demonstrates selected standard capabilities, not every optional field. Its application grouping does not establish that every capture shares a subject, clock or physical cause.
Data and fictional text use CC0-1.0; example code uses the MIT license. The viewer is not an intake, redaction or publication service.
Continue with [Renderers & support](/v2/docs/showcase-support) to choose a component and understand its format limits, or [Prepare a dataset contribution](/v2/docs/datasets) for the real-data workflow.
# Active sonar profile (/v2/docs/sonar)
An active sonar recording pairs a transmitted ping with samples received after it. The **active sonar profile** connects those samples to a capture, defines their time and delay axes, and identifies which samples were retained.
This guide uses a fictional echo envelope, a grid of relative amplitudes rather than an acoustic waveform. You will reproduce its files, validate them, read a retained and a missing sample, and diagnose three failures.
Profile status [#profile-status]
**Published in npm `2.0.0-beta.4`.** The profile evaluators and readers are available through `@disclosureos/schema/experimental/v2`. The retained source revision below is only needed to regenerate this example.
Start with [Equipment and captures](/v2/docs/instruments) for the shared equipment model. This optional profile describes a complete echo-envelope capture. It composes an observation, acquisition context and source selection; a scalar measurement binding or claim history is not required.
1. Open the published-package example [#1-open-the-published-package-example]
**Requirements:** Node.js 22, npm and a ZIP extractor. Create a local project and install the published API:
```sh
mkdir disclosureos-sonar-beta4
cd disclosureos-sonar-beta4
npm init -y
npm install --save-exact @disclosureos/schema@2.0.0-beta.4
curl --fail --location https://os.disclosure.org/examples/meridian.zip --output meridian.zip
unzip meridian.zip
curl --fail --location https://os.disclosure.org/examples/v2/sonar/check-sonar.mjs --output check-sonar.mjs
node check-sonar.mjs meridian/sonar-active-v1
```
The download contains the full fictional example case. This guide uses only `meridian/sonar-active-v1`. Keep the terminal in this npm project for the checks below. The displayed profile and selected-value results are explained in the following sections.
Use a **separate terminal and directory** for this reproduction. It regenerates the retained fixture; it is not required to install or use the published profile APIs. Return to the npm project above for the rest of this guide.
Reproduce an echo capture [#reproduce-an-echo-capture]
**Requirements:** Node.js 22, Git and pnpm 9.15.0. Start in a separate directory, then run:
```sh
git clone https://github.com/disclosurefoundation/disclosureos.git disclosureos-sonar
cd disclosureos-sonar
git checkout --detach e19a89793871d23fb036e59c75ff83c86e21dfad
corepack pnpm install --frozen-lockfile
corepack pnpm --workspace-concurrency=1 \
--filter "@disclosureos/schema..." build
node examples/sonar-active/build.mjs
node examples/sonar-active/verify.mjs
```
If you already built the Radar guide at this exact revision, reuse that checkout and run the last two commands.
The build writes `examples/sonar-active/generated/`. The verifier regenerates the example, compares every file byte for byte, evaluates the profile and reads all 16,384 sample positions through both the sonar reader and the general source reader. Its output is:
```json title="Reproduction result"
{
"success": true,
"files": 10,
"retained": 15424,
"missing": 960,
"selectedCells": 16384,
"scientific": "not_checked",
"physicalCalibration": "not_performed",
"propagationAccuracy": "not_checked"
}
```
These counts belong to this fixture: 64 pings with 256 delay bins each. `selectedCells` includes missing positions. The synthetic experiment has no physical calibration; reproducing its files does not establish acoustic accuracy.
To check the authored envelope features and missing-sample pattern:
```sh
node --test examples/sonar-active/model.test.mjs
```
[Explore the same active sonar example](/v2/instruments?recording=survey\&example=sonar-active). Select a cell to inspect its ping, delay, amplitude and availability. The echo profile follows one ping; the delay-history view follows one bin across the capture.
What the profile describes [#what-the-profile-describes]
This profile is **monostatic**: transmission and reception are assumed to occur at the same position. It supports a regular ping schedule, a two-way delay axis, normalized envelope amplitudes and a paired receive mask. A constant assumed sound speed provides an optional display of modeled path length.
Four connected documents [#four-connected-documents]
| Document | What it provides |
| ----------------------- | ------------------------------------------------------------------------------------------------------------ |
| `observation.json` | Sources and the two retained products, with an observation interval. |
| `acquisition.json` | Equipment, pinned configuration, the echo channel, capture interval and both raw artifacts. |
| `source-selection.json` | Array shape, axis definitions, byte order, units, byte lengths and digests. |
| `sonar-profile.json` | References to those documents, product roles, ping timing, receive-mask meaning and the distance assumption. |
The profile selects `acquisition:sonar-capture` and channel `echo-envelope`. Its `acquisitionProductRef` and `receiveMaskAcquisitionProductRef` select two distinct products in the acquisition context. Its `products.amplitudes` and `products.receiveMask` select the observation products and their source layouts. The evaluator checks these relationships, even where the local names are identical.
Two source arrays [#two-source-arrays]
| File | Layout | Meaning |
| ------------------- | ----------------------------------- | ---------------------------------------------------------------------------------------------- |
| `echo-envelope.f32` | 65,536 bytes; little-endian float32 | Dimensionless amplitudes from 0 to 1, with zero placeholders where reception was not retained. |
| `receive-mask.u8` | 16,384 bytes; uint8 | One availability value per amplitude: `1` retained, `0` not retained. |
Both arrays use row-major `[ping, delay bin]` order. `methods.json` states the equations, gaps and limits; `model.mjs` generates them. The example's `index.json` helps locate files. It is a convenience index, not another standard contract.
2. Validate files and read samples [#2-validate-files-and-read-samples]
The reproduction above checks this particular fixture against its generator. The downloaded `check-sonar.mjs` uses the installed Beta 4 package. Run it from the npm project created above.
From your npm project, run:
```sh
node check-sonar.mjs \
meridian/sonar-active-v1
```
The script imports `evaluateSonarProfile` and `readSonarSample` from `@disclosureos/schema/experimental/v2`. It loads the four saved documents and both local files, then calls:
```js
const result = await evaluateSonarProfile(
observation,
context,
selection,
profile,
{ assets },
);
```
`assets` maps each layout's `productRef` to complete file bytes: `product:amplitudes` and `product:receiveMask` here. Filenames and sample indices are not asset keys. The runner uses the example index to locate local files; the evaluator checks their lengths and digests. It does not fetch artifact URLs.
The first result is:
```json title="Profile result"
{
"success": true,
"checks": {
"structure": "passed",
"sources": "passed",
"semantics": "passed"
},
"scientific": "not_checked",
"physicalCalibration": "not_checked",
"propagationAccuracy": "not_checked",
"issues": []
}
```
| Check | Meaning |
| ----------- | -------------------------------------------------------------------------------------------------------------- |
| `structure` | All four inputs satisfy their prerequisite contracts. |
| `sources` | Source selections and retained bytes pass their checks, including lengths and digests. |
| `semantics` | Capture and channel bindings, time bounds, axes, amplitude values and receive-mask rules satisfy this profile. |
A passing report does not establish physical calibration, propagation accuracy, depth or object identity. Unlike the fixture's `not_performed` calibration declaration, the evaluator reports `not_checked`: it does not verify calibration.
Only after success, the script reads two samples from the validated, decoded products:
```js
const retained = readSonarSample(profile, result.data.products, 12, 64);
const missing = readSonarSample(profile, result.data.products, 28, 64);
```
All indices are zero-based. The output is:
```json title="Selected samples"
{
"retained": {
"ping": 12,
"bin": 64,
"delaySeconds": 0.064,
"modeledDistanceM": 48,
"timeOffsetSeconds": 12,
"receiveOffsetSeconds": 12.064,
"amplitudeByteOffset": 12544,
"maskByteOffset": 3136,
"available": true,
"amplitude": 0.2900271415710449
},
"missing": {
"ping": 28,
"bin": 64,
"delaySeconds": 0.064,
"modeledDistanceM": 48,
"timeOffsetSeconds": 28,
"receiveOffsetSeconds": 28.064,
"amplitudeByteOffset": 28928,
"maskByteOffset": 7232,
"available": false,
"amplitude": null
}
}
```
The offsets identify the four-byte amplitude and one-byte mask in separate files. For `[12, 64]`, the row-major index is `12 × 256 + 64 = 3136`; the amplitude offset is `3136 × 4 = 12544`.
The dependency-free readers check declarations, layouts and values. They do not check digests or acquisition lineage. Validate with `evaluateSonarProfile` before presenting their output as checked source data.
Availability belongs to the source [#availability-belongs-to-the-source]
**Read the mask before displaying an amplitude.** The missing sample above still has a declared delay and a modeled distance, but its amplitude is `null`. Those coordinates locate a storage slot; they do not establish that an echo was received there.
The file stores zero at unavailable positions. Treating those zeros as measurements would invent a low-amplitude return. Use `readSonarSample` to preserve the distinction, then show a gap or an explicit unavailable state. Do not draw a continuous line through missing samples.
In this fixture, pings 28–30 are entirely missing. Pings 44–49 also omit bins 120–151. That accounts for 768 whole-ping positions and 192 partial-ping positions. The gaps are authored omissions, with no inferred physical cause. The receive mask is not a detection decision, coverage map or acoustic-shadow model.
Delay and modeled distance [#delay-and-modeled-distance]
Keep these quantities distinct:
| Quantity | Retained sample `[12, 64]` |
| --------------------------- | ------------------------------------------------------------ |
| Ping origin | 12 seconds after `2026-07-28T22:10:00Z`. |
| Two-way delay | 0.064 seconds after that ping. |
| Receive time | 12.064 seconds after the profile origin, or `22:10:12.064Z`. |
| Modeled one-way path length | 48 metres, using the assumed 1,500 m/s sound speed. |
The declared conversion is:
```text
modeled distance = two-way delay × assumed sound speed / 2
48 m = 0.064 s × 1500 m/s / 2
```
The final bin has a delay of 0.255 seconds and a modeled distance of 191.25 metres. Bin spacing is 0.001 seconds, or 0.75 metres under this assumption. **Spacing is not physical range resolution or accuracy.** The example supplies no pulse bandwidth, measured sound-speed profile or uncertainty model.
Switching the viewer between delay and distance changes the axis interpretation, not the source bytes. Without direction and geometry, the modeled path length is not depth, bearing or a straight-line position. The regular UTC schedule is authored and has no physical clock traceability.
3. Diagnose a failed check [#3-diagnose-a-failed-check]
Each flag changes only in-memory inputs. Use one flag at a time. Deliberate failures exit with status 1 and stop before reading the selected samples. An unsupported flag or extra argument exits with usage status 2.
Withhold the receive mask [#withhold-the-receive-mask]
```sh
node check-sonar.mjs \
meridian/sonar-active-v1 \
--missing-mask
```
The profile reports `sources: failed` and `semantics: not_checked`, with this issue:
```json title="Missing-mask issue"
{
"code": "SONAR.SOURCE_BYTES",
"pointer": "/products",
"message": "All retained source bytes are required for verification."
}
```
The additional source report leaves `external: not_checked` and has no source issue. Missing bytes are not contradictory bytes. An empty issue list does not mean the check completed, and the envelope alone is insufficient to distinguish retained zeros from placeholders.
Change one mask byte [#change-one-mask-byte]
```sh
node check-sonar.mjs \
meridian/sonar-active-v1 \
--changed-mask
```
The profile again stops at source checking, but now the bytes contradict the retained digest:
```json title="Changed-byte issue"
{
"code": "SONAR.SOURCE.EXTERNAL.DIGEST",
"pointer": "product:receiveMask",
"message": "Artifact digest differs."
}
```
The additional source report has `external: failed` and code `EXTERNAL.DIGEST`. The pointer names the product whose bytes changed. Do not replace the declared digest merely to make an unexpected file pass.
Let the receive window reach the next ping [#let-the-receive-window-reach-the-next-ping]
```sh
node check-sonar.mjs \
meridian/sonar-active-v1 \
--overlapping-pings
```
This changes the declared ping interval from 1 second to 0.255 seconds, exactly the delay of the final bin. Structure passes, `semantics` fails and sources remain `not_checked`:
```json title="Receive-window issue"
{
"code": "SONAR.DECLARATION",
"pointer": "/sampling",
"message": "Sonar receive window reaches the next ping."
}
```
This profile requires the receive window to end strictly before the next ping. The pointer selects the sampling declaration in `sonar-profile.json`. The evaluator stops at that contradiction before inspecting the array axes or bytes.
Rerun the normal command without a flag to recover. None of these exercises changes a generated file.
Reproduce and inspect [#reproduce-and-inspect]
Use the [active sonar viewer](/v2/instruments?recording=survey\&example=sonar-active) to compare the echo map, selected ping and delay history. Its source inspector shows separate amplitude and mask offsets. The [example case](/showcase?surface=desk\&view=instruments\&workspace=bench\&benchFamily=survey\&variantDevice=sonar-active) includes the same `sonar-active-v1` packet in its download.
For exact field and API definitions at this revision:
* [Sonar profile schema](https://github.com/disclosurefoundation/disclosureos/blob/e19a89793871d23fb036e59c75ff83c86e21dfad/packages/disclosureos-schema/src/experimental/v2/sonar-profile-schema.ts): required declarations and product references.
* [Profile evaluator](https://github.com/disclosurefoundation/disclosureos/blob/e19a89793871d23fb036e59c75ff83c86e21dfad/packages/disclosureos-schema/src/experimental/v2/sonar-profile.ts): bindings, source verification and semantic checks.
* [Source reader](https://github.com/disclosurefoundation/disclosureos/blob/e19a89793871d23fb036e59c75ff83c86e21dfad/packages/disclosureos-schema/src/experimental/v2/sonar-profile-reader.ts): sample addressing, receive availability and modeled distance.
The [shared equipment field reference](/v2/docs/reference/instruments) covers acquisition and measurement bindings. It is not a field reference for this newer sonar profile.
Limits and next step [#limits-and-next-step]
This is an authored envelope, not a physical propagation simulation. Two converging components and a brief additional echo demonstrate inspection; they are not recovered objects. The profile does not supply carrier waveforms, Doppler, beamforming, detection, tracking, bathymetry or classification. `raw` identifies the retained input product, not unprocessed electrical or acoustic measurements.
[Passive sonar](/v2/docs/passive-sonar) is also a separate profile: it has no transmitted ping or automatic delay-to-distance conversion. For the general active/passive distinction, see [NOAA's introduction to sonar](https://oceanservice.noaa.gov/facts/sonar.html).
# Witnesses and accounts (/v2/docs/testimony)
A witness is a person. An account is one recorded telling of what that person reported. Keep them separate so a later interview can refer to the same witness without being counted as another witness. A review records what someone concludes about a particular account or declaration.
This guide follows one fictional witness through two accounts. You will run the published example, trace its speaker and source links, then deliberately break a link to see what validation catches.
**Requirements:** Node.js 22 and the [witness example download](/examples/v2/witness-accounts.zip). This is a self-contained exercise; it does not require files from the preceding guides. Its people and statements are fictional, and its historical dates demonstrate how to preserve incomplete time information. It is not ELDÆON data.
1. Run the witness example [#1-run-the-witness-example]
Extract the ZIP, open a terminal in the `witness-accounts` folder and run:
```sh
npm install --ignore-scripts
npm start
```
The archive pins `@disclosureos/records` and `@disclosureos/schema` to `2.0.0-beta.4`. Its `source.json` records the source commit and file digests. The runner prints a full validation report; these are its success and check fields:
```json
{
"success": true,
"checks": {
"structural": "passed",
"semantic": "passed",
"profile": "not_checked",
"external": "passed"
}
}
```
The result confirms that the supplied JSON snapshots and their typed connections pass the checks. It does not authenticate the original interviews or establish that an account is accurate. The archive contains declarations about those interviews, not the original interview files.
Four files have different roles:
| File | What it holds |
| ------------------ | ----------------------------------------------------------------------------------------- |
| `observation.json` | The source inventory: an interview recorded in 1981 and a retelling recorded in 1990. |
| `context.json` | The reported event period, the third quarter of 1952. No exact event instant is invented. |
| `entities.json` | Witness A, two accounts, a procedure declaration and a witness group. |
| `history.json` | A separate review of Witness A's reported experience, tied to exact document snapshots. |
To use the validation calls in your own code, save this as `check-accounts.mjs` in the extracted folder:
```js title="check-accounts.mjs"
import { readFileSync } from "node:fs";
import { createHash } from "node:crypto";
import {
parseResearchEntities,
parseResearchClaimHistory,
} from "@disclosureos/records/experimental/v2";
import { evaluateResearchClaimHistory } from "@disclosureos/schema/experimental/v2";
const read = (name) => readFileSync(name);
const entities = JSON.parse(read("entities.json").toString("utf8"));
const history = JSON.parse(read("history.json").toString("utf8"));
const local = [
parseResearchEntities(entities),
parseResearchClaimHistory(history),
];
if (local.some((result) => !result.success)) {
console.error(
JSON.stringify(
local.map((result) => result.issues),
null,
2,
),
);
process.exitCode = 1;
} else {
const documents = new Map(
["observation.json", "context.json", "entities.json"].map((name) => {
const bytes = read(name);
return [createHash("sha256").update(bytes).digest("hex"), bytes];
}),
);
const result = await evaluateResearchClaimHistory(history, { documents });
console.log(
JSON.stringify({ success: result.success, checks: result.checks }, null, 2),
);
if (!result.success) {
console.error(JSON.stringify(result.issues, null, 2));
process.exitCode = 1;
}
}
```
Run `node check-accounts.mjs`. It prints the compact result shown above. The local parsers check structure and local relationships. The evaluator then checks the supplied snapshots, their identities and their connections to the observation. It fetches nothing from a URL.
2. Follow the witness and account links [#2-follow-the-witness-and-account-links]
Open `entities.json`. The witness has `kind: "witness"` and `id: "A"`. The first account also uses `id: "A"`, but has `kind: "account"`. IDs are scoped by entity kind within the document: **witness A and account A are different entities**.
Both accounts identify the same speaker:
| Account ID | `speakerWitnessIds` value | `recordedTime` value | `sourceDocument` value |
| ----------- | ------------------------- | -------------------- | ----------------------- |
| `A` | `["A"]` | Year `1981` | `source:account-1981` |
| `retelling` | `["A"]` | Year `1990` | `source:retelling-1990` |
The shared speaker link records a relationship. It does not establish independent corroboration. The review leaves `multipleIndependent` as `unknown`.
Each field contains a list of assertions. Here is the first account's speaker assertion, copied from the example:
```json
{
"id": "speaker",
"content": {
"state": "known",
"value": ["A"],
"provenance": {
"sourceRef": "source:account-1981",
"attributedTo": "Synthetic source author",
"extractedBy": "Synthetic curator",
"locator": { "kind": "page", "page": 1 }
}
}
}
```
`known` means a value was supplied. It does not mean the speaker's identity was independently verified. `speaker` identifies this assertion; `A` is the witness ID; `source:account-1981` resolves to the observation's source inventory.
The account's `content` retains source wording. Its `summary` identifies `summarizedBy`, so an editor's wording does not become a witness quotation. `recorder` identifies who recorded the account. These roles can differ from `provenance.extractedBy` and `provenance.attributedTo`; do not infer one from another.
3. Try a broken speaker reference [#3-try-a-broken-speaker-reference]
Save this as `break-speaker.mjs` in the same folder. It changes only an in-memory copy, so the downloaded snapshots remain intact.
```js title="break-speaker.mjs"
import { readFileSync } from "node:fs";
import { parseResearchEntities } from "@disclosureos/records/experimental/v2";
const entities = JSON.parse(readFileSync("entities.json", "utf8"));
const account = entities.entities.find(
(entity) => entity.kind === "account" && entity.id === "A",
);
account.fields.speakerWitnessIds[0].content.value = ["missing-witness"];
const result = parseResearchEntities(entities);
console.log(
JSON.stringify({ success: result.success, checks: result.checks }, null, 2),
);
console.error(JSON.stringify(result.issues, null, 2));
if (!result.success) process.exitCode = 1;
```
Run `node break-speaker.mjs`. The structure passes, but `success` is `false`, `semantic` is `failed`, and the process exits with status 1. It prints this issue:
```json
[
{
"code": "REF.ENTITY",
"stage": "semantic",
"pointer": "/entities/1/fields/speakerWitnessIds",
"message": "Typed local entity does not exist."
}
]
```
The pointer locates the broken field in this fixture. An account can hold a speaker ID with the right shape and still fail because that witness does not exist. Run `node check-accounts.mjs` again to confirm the original files still pass.
A local parse does not resolve external source IDs or snapshot bytes. Those require the supplied-document check in step 1. Even a whitespace change to `entities.json` changes its SHA-256 and invalidates the history's saved reference. For a new review, build its document references, subject and assertion inputs from the new exact bytes. Keep earlier reviews bound to their original snapshots; changing a reference does not re-evaluate a claim.
Build your own witness and account document [#build-your-own-witness-and-account-document]
Use the technical document kind `research_entities` with schema version `0.1.0`. The same entity list supports four types; include only the ones your material needs.
| Entity | What to preserve |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| **Witness** | Approved public identity or pseudonym, role, qualifications and experience at a stated relevant time. |
| **Account** | Speaker IDs, recorder, recording time, source wording, attributed summary, citation and declared oath or custody context. |
| **Procedure** | The witness or account concerned, administration and reported results. A reported polygraph result does not validate an account. |
| **Witness group** | A sourced roster, reported count and aggregate description. A reported count need not equal the documented roster. |
Start with an [Observation record](/v2/docs/records) containing the account's source entry. Add [event and setting context](/v2/docs/context) when you need a reported event period or other context. Then:
1. Set the entity document's `observationRef` to the exact observation ID, schema ID and SHA-256. Declare any referenced context snapshots in `contextRefs`.
2. Create a witness using the public identity supplied by the source. Create a distinct account for each recording or retelling.
3. Add sourced field assertions. Connect each account to its speakers through `speakerWitnessIds` and to its source through `sourceDocument`.
4. Run `parseResearchEntities`. After saving the document, compute its digest from the bytes you actually wrote.
5. If you need cross-document checks, declare that snapshot in a research claim history's `entityRefs` and supply the original document bytes to `evaluateResearchClaimHistory`. An empty `claims` list can check the connections without adding an assessment.
The [field reference](/v2/docs/reference/testimony) exposes all four entity types, their nested fields and exact allowed values. Package version `2.0.0-beta.4`, entity document version `0.1.0` and research claim-history version `0.3.0` identify different things.
Preserve time, uncertainty and privacy [#preserve-time-uncertainty-and-privacy]
**Keep the dates separate.** This example reports an event in the third quarter of 1952, accounts recorded in 1981 and 1990, and declarations assembled in 2026. Five years of aviation experience applies to the event quarter. It is not a current credential. Qualifications use a calendar time, an exact context reference or an explicitly unknown relevant time.
**Keep missing states separate.** Omission means a field was not supplied. `unknown` carries a reason; `redacted` represents withheld information. `approximate` qualifies a value and `unmapped` retains wording not mapped to a supported value. Zero and false are actual values, not defaults. Alternative assertions may coexist. Use an explicit selection, with its rationale, if a reviewer chooses one.
**Use approved public information.** Private identity mappings and contact properties are excluded from typed public fields. Free text, URLs and extensions are not automatically sanitized. A pseudonym or `anonymous: true` does not remove identifying details elsewhere. Keep private intake data outside public documents.
The example leaves consent, oath, procedure results and independence unknown. A public pseudonym does not imply consent to publish a legal name. Neither anonymity nor a missing field supplies a credibility penalty.
Review an exact declaration [#review-an-exact-declaration]
A research claim history (`0.3.0`) supports observation, measurement, context and research-entity subjects. Use `subject` to identify what is being reviewed, and `entityInputRefs` to identify supporting assertions. Each reference binds a document ID, schema ID and SHA-256 to a typed target `{ kind, id, field? }`; an assertion input also identifies its `assertionId`.
In the example, the review concerns `witness A → experienceYears`. Its input is assertion `experience` on that field. The reviewer records the outcome as `reported`, explains the rationale and leaves independence unknown. It is a review of that sourced qualification, not a verdict on the person or the entire event.
`witnessReview` belongs to an assessed claim with an entity subject, explicit inputs, evaluator, method/version, evaluation time and rationale. Ratings, factors, consistency and independence remain reviewer declarations. Qualitative ratings do not become numeric scores. Competing reviews can coexist; changing the snapshot changes the subject under review.
A passing supplied-document result leaves source-artifact integrity, scientific interpretation, temporal normalization, sensor fusion and profile applicability unchecked. Continue with [Claims](/v2/docs/claims) for assessment outcomes and review history.
Check source-file provenance [#check-source-file-provenance]
This is a separate workflow for verifying selected account files against their declared digests and recording citations. The API is named `historical-testimony`, but contemporary accounts can use it too. It accepts unknown event time and location and does not require measurements, assessments or a legal name for the speaker.
**Use its own example and contract.** This profile accepts claim-history `0.1.0`, not the `0.3.0` history above. Do not remove witness or account information to make a research history fit it. The [shared provenance guide](/v2/docs/provenance-examples) supplies a compatible runnable example and local source bytes.
To assemble this check:
1. Put the preserved account in the observation's `sources` inventory with `kind: testimony`, its actual access declaration and a SHA-256 digest.
2. Supply a testimony selection with the exact `historyId` and `observationId`. Each selected account names a `sourceRef` and recording citation.
3. Supply the account bytes in an `assets` map keyed by the source reference. The evaluator does not fetch source URLs.
4. For direct extractions, retain the passage locator, extractor and speaker attribution in the current source statement or observation assertion. Mixed-speaker material needs passage-specific attribution.
Known recording context has `recording.recordedBy` and `recording.reference`. Unknown context has a reason; it can be represented but does not satisfy the required citation. The recorder, extractor and attributed speaker are separate identities. A document containing testimony may remain a document source; do not relabel it just to pass this profile.
| Result | Meaning |
| ------------------------------------------------- | -------------------------------------------------------------------------------------- |
| Missing required declaration | The corresponding requirement fails. |
| Eligible declarations, unavailable bytes | The file check remains `not_checked`. |
| Supplied bytes differ from the digest | The file check fails. |
| No supplied extraction | Extraction checks are `not_applicable`; transcription completeness is not established. |
| Matching nonempty bytes and required declarations | The selected-file checks pass within their stated scope. |
Source title and URI are recommended citation aids, not scientific scoring factors. Superseded statements do not determine the current extraction checklist. OCR, translations and other derived material need their own processing provenance.
A passing result does not establish speaker identity, recording authenticity, account accuracy, firsthand knowledge, witness independence, extraction accuracy, assessment support, redistribution rights or scientific eligibility. The returned history retains its access declarations; it is not a public projection.
Continue exploring [#continue-exploring]
* [Witness and account fields](/v2/docs/reference/testimony): browse the entity document, attributed reviews and source-file selection separately.
* [Accounts in the showcase](/showcase?surface=desk\&deskGroup=accounts\&view=accounts): explore the full fictional case's accounts and recording context. Its sources differ from this historical exercise.
* [Documents and custody](/v2/docs/documents): preserve editions, release context and the record of how material was handled.
Exact schema exports are `@disclosureos/records/experimental/v2/entities/schema/0.1.0`, `@disclosureos/records/experimental/v2/claims/schema/0.3.0` and `@disclosureos/schema/experimental/v2/historical-testimony/schema`. Their URNs identify contracts, not downloadable HTTP endpoints.
# Check a measured value (/v2/docs/worked-example)
Follow a **−3 m/s radial-velocity measurement** from its observation to a captured channel and retained files. You will run a passing check, inspect the connections, then see how the result changes when bytes or a mapping disagree.
This is a small synthetic validation fixture, separate from the full fictional showcase case and from ELDÆON data. Its equipment, calibration, timing and processing are authored declarations. The exercise checks their structure and connections; it does not demonstrate a working sensor or reproduce the measurement.
For a real source row with incomplete equipment context, use [Reproduce an ELDÆON reading](/v2/docs/eldaeon-reading).
1. Run the example [#1-run-the-example]
[Download the complete example](/examples/v2/measurement.zip), unzip it and open the `measurement` folder. The download includes four JSON documents, three small artifacts, an MIT license, a pinned dependency and `run.mjs`.
With Node.js 22 or newer:
```sh
npm install
npm start
```
The dependency is the published `@disclosureos/schema@2.0.0-beta.4`. Installation fetches npm dependencies; the evaluator itself reads the supplied local bytes and never fetches provider URLs.
2. Read the result [#2-read-the-result]
The script prints this summary:
```json
{
"success": true,
"checks": {
"structural": "passed",
"semantic": "passed",
"profile": "passed",
"external": "not_checked"
},
"scientific": "not_checked",
"clockUncertainty": "not_checked",
"artifactContents": "not_checked"
}
```
| Result | What it means here |
| ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `structural: passed` | The four inputs have the expected document shapes. |
| `semantic: passed` | Their identifiers and declared relationships resolve consistently. |
| `profile: passed` | The measurement has the required capture connection, matching quantity and unit, contained time and matching required artifact bytes. |
| `external: not_checked` | The evaluator does not assert overall external verification. This remains unchanged even when the profile checks the supplied artifacts. A mismatching artifact can set it to `failed`. |
| The three remaining `not_checked` values | The check does not establish scientific validity, apply clock uncertainty or interpret artifact contents. |
`success` is true when this measurement-binding profile passes. It is not an approval of the observation or every claim in its history. In particular, the calibration is explicitly `unreviewed` and the declared reduction has not been reproduced. Do not rewrite an unchecked stage as passed in your application.
3. Follow the reading [#3-follow-the-reading]
The observation's primary source chain starts with `measurement:velocity`, follows `assertion:velocity` to `product:summary`, then follows the declared reduction back to `product:raw`. Acquisition bindings connect that raw product to `product:captured-raw` in the context. Measurement bindings select its `radar` channel and capture time.
| File | What to inspect |
| --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [history.json](/examples/v2/measurement/history.json) | The embedded observation declares −3 m/s, its source assertion, derived summary and processing inputs. The history also retains attributed synthetic claims. |
| [context.json](/examples/v2/measurement/context.json) | The same capture used in Equipment and captures: product `captured-raw`, capture `a1`, configuration `r1`, channel `radar` and calibration `c1`. |
| [bindings.json](/examples/v2/measurement/bindings.json) | Maps observation `source:station` to context `instrument:station`, and observation `product:raw` to context `product:captured-raw`. |
| [measurements.json](/examples/v2/measurement/measurements.json) | Maps `measurement:velocity` to that observation raw product, channel `radar` and `2026-07-28T12:10:00Z`. |
Both channel and measurement declare `radial velocity` and `m/s`. The instant is at the start of a one-minute capture. The observation's measurement uncertainty and the context's calibration uncertainty are separate declarations; this check does not combine them.
The three artifacts are intentionally small so you can inspect their bytes:
| Local file | Key supplied to the evaluator | Declared size |
| ---------------------------------- | ----------------------------- | ------------- |
| `assets/product-captured-raw.txt` | `product:captured-raw` | 23 bytes |
| `assets/manifest-r1.txt` | `manifest:r1` | 367 bytes |
| `assets/calibration-c1-report.txt` | `calibration:c1/report` | 94 bytes |
These keys use context IDs, not filenames or observation product IDs. The files' byte lengths and SHA-256 digests match the context declarations. The `.txt` filenames do not determine the declared media types. The evaluator checks the required bytes, but does not decode their contents or rerun the declared processing.
Read [Connect measurements](/v2/docs/bindings) for the mapping documents and assembly rules. This example uses claim history `0.1.0`, with an embedded observation, and acquisition context and bindings at `0.1.0`. Newer research-history contracts have separate evaluators; they cannot be substituted into this call simply by changing a version string.
4. Try a missing file or broken connection [#4-try-a-missing-file-or-broken-connection]
Run each command separately from the example folder. The flags change only in-memory inputs; the downloaded files stay intact. Each experiment exits with status 1 because the profile did not pass, and prints the summary followed by a diagnostic array.
Withhold the raw file [#withhold-the-raw-file]
```sh
npm start -- --missing
```
The script leaves the raw-product bytes out of the asset map. The profile remains `not_checked`, with an `EXTERNAL.ASSET_UNAVAILABLE` warning. The required file has not been checked.
Change one byte [#change-one-byte]
```sh
npm start -- --changed
```
The script flips one byte in memory and preserves the file length. Profile and external checks become `failed`, with `EXTERNAL.DIGEST_MISMATCH`. This is a supplied file that disagrees with its declaration.
Name an absent channel [#name-an-absent-channel]
```sh
npm start -- --wrong-channel
```
The mapping names `missing-channel`. Semantic and profile checks become `failed`, with `MEASUREMENT.CHANNEL`. The named channel must exist in both the pinned configuration and the capture.
Move beyond the capture [#move-beyond-the-capture]
```sh
npm start -- --outside-capture
```
The measurement instant moves to `12:11:00Z`, the exclusive capture end. Semantic and profile checks become `failed`, with `MEASUREMENT.OUTSIDE_CAPTURE`. An instant at the start is included; one at the end is not.
For example, the changed-byte experiment prints this issue inside its diagnostic array:
```json
{
"code": "EXTERNAL.DIGEST_MISMATCH",
"stage": "external",
"severity": "error",
"pointer": "/context/products/0/artifact",
"message": "Supplied bytes do not match the pinned SHA-256 digest."
}
```
The pointer names the artifact declaration in the first context product. It does not say which byte changed. Missing bytes are different: they leave the check incomplete and produce a warning, rather than proving that a supplied file disagrees with its digest. A channel or time error can stop the evaluator before it checks the artifacts.
Run `npm start` again to recover the original passing result. No download or manual file restoration is needed. The wrapper accepts one experiment at a time; an unrecognized option exits with status 2 and prints usage rather than silently running the passing case.
Use the evaluator in your application [#use-the-evaluator-in-your-application]
The [complete script](/examples/v2/measurement/run.mjs) reads JSON from disk, builds the asset map and calls the evaluator. This is the call to adapt after loading your inputs:
```js
import { evaluateMeasurementBindings } from "@disclosureos/schema/experimental/v2";
// history, context, bindings and measurements are parsed JSON documents.
// assets maps context artifact IDs to complete Uint8Array file contents.
const result = await evaluateMeasurementBindings(
history,
context,
bindings,
measurements,
{ assets },
);
if (!result.success) {
// Retain the stage, severity, pointer and message for each issue.
console.error(result.checks, result.issues);
}
```
A successful result checks this profile's declared relationships and required artifact matches. It does not prove that the raw file contains the stated value, that the source assertion is correct or that the reduction was executed. The history's `confirmed` source and assessment claims remain attributed synthetic declarations, not findings produced by this evaluator.
For a provider integration, start with one native recording and one traceable measured value. Preserve the actual bytes, units, capture time and configuration revision. Retain missing calibration or clock information explicitly instead of copying the synthetic fixture's declarations. The [ELDÆON public preview](/datasets/eldaeon/july-2026) uses supplied native files with validated source-intake receipts. Its [electric-field reading example](/v2/docs/eldaeon-reading) reproduces a real source cell while reporting incomplete capture context. Clock alignment and calibration remain unresolved.
Source and implementation [#source-and-implementation]
The four documents and three artifacts are copied unchanged from the [canonical synthetic example](https://github.com/disclosurefoundation/disclosureos/tree/da7790d688b4d3fe1059ec91a75146a36fb991c1/examples/v2/acquisition-binding-demo), under its MIT license. The portal adds the runnable wrapper, safe experiment flags and dependency pin. The download's README records that provenance.
Continue with [Equipment and captures](/v2/docs/instruments), [Connect measurements](/v2/docs/bindings) or the [shared field reference](/v2/docs/reference/instruments). To see connected recordings in a larger interface, open [Original scalar readings in the research desk](/showcase?surface=desk\&view=instruments\&workspace=readings).
# Claim-history fields (/v2/docs/reference/claims)
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
Extra fields: Not allowed at the history root. Use extensions for namespaced additional JSON.
## Claim history
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
Base claim history 0.1.0 for observation and measurement subjects. Preserve source statements, pending questions and attributed reviews. Context, witness, document, laboratory and case subjects use their own contracts and guides.
Schema: urn:disclosureos:experimental:claim-history:0.1.0
Export: @disclosureos/records/experimental/v2/claims/schema
### kind
Type: string; required in containing object
Identifies this document as a claim history.
const: "claim_history"
### schemaVersion
Type: string; required in containing object
The claim-history contract version.
const: "0.1.0"
### id
Type: string; required in containing object
An identifier for this history.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation
Type: object; required in containing object
The embedded observation retains its own contract. Its measurements remain distinct from interpretations.
Extra fields: Not allowed in this object
### observation.kind
Type: string; required in containing object
const: "observation"
### observation.schemaVersion
Type: string; required in containing object
const: "0.1.0"
### observation.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.status
Type: string; required in containing object
enum: ["draft","published","withdrawn"]
### observation.createdAt
Type: string; required in containing object
### observation.createdAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.createdAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.createdAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.createdAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.updatedAt
Type: string; required in containing object
### observation.updatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.updatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.updatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.updatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.summary
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.eventTime
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.eventTime/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.state
Type: string; required in containing object
const: "known"
### observation.eventTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### observation.eventTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### observation.eventTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### observation.eventTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.eventTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### observation.eventTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.eventTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### observation.eventTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### observation.eventTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.eventTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.eventTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### observation.eventTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.eventTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### observation.eventTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.eventTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### observation.eventTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.eventTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### observation.eventTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.eventTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### observation.eventTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### observation.eventTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.eventTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.eventTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### observation.eventTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.eventTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.eventTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### observation.eventTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.eventTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### observation.eventTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.eventTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### observation.eventTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### observation.eventTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.eventTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.eventTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### observation.eventTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.eventTime/option-1.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-1.sourceRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-1.selection
Type: object; optional
Extra fields: Not allowed in this object
### observation.eventTime/option-1.selection.assertionRef
Type: string; required in containing object
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-1.selection.consideredAssertionRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-1.selection.consideredAssertionRefs[]
Type: string
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-1.selection.methodRef
Type: string; required in containing object
pattern: "^method:[^\\s:]+(?![\\s\\S])"
### observation.eventTime/option-1.selection.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-1.selection.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-1.selection.evaluatedAt
Type: string; required in containing object
### observation.eventTime/option-1.selection.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-1.selection.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.selection.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-1.selection.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-1.selection.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-1.uncertainty
Type: choice; optional
Choose: Exactly one of the alternatives below
### observation.eventTime/option-1.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.eventTime/option-1.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.eventTime/option-1.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.eventTime/option-1.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.eventTime/option-1.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-1.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-1.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-1.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.eventTime/option-1.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.eventTime/option-1.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-1.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-1.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-1.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.eventTime/option-1.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.eventTime/option-1.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.eventTime/option-1.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.eventTime/option-1.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-1.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-1.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.state
Type: string; required in containing object
const: "approximate"
### observation.eventTime/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### observation.eventTime/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### observation.eventTime/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### observation.eventTime/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.eventTime/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### observation.eventTime/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.eventTime/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### observation.eventTime/option-2.value/option-1/option-3.value
Type: string; required in containing object
### observation.eventTime/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.eventTime/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.eventTime/option-2.value/option-1/option-4.value
Type: string; required in containing object
### observation.eventTime/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.eventTime/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### observation.eventTime/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.eventTime/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### observation.eventTime/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.eventTime/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### observation.eventTime/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.eventTime/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### observation.eventTime/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### observation.eventTime/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.eventTime/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.eventTime/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### observation.eventTime/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.eventTime/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.eventTime/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### observation.eventTime/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.eventTime/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### observation.eventTime/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.eventTime/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### observation.eventTime/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### observation.eventTime/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.eventTime/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.eventTime/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### observation.eventTime/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.eventTime/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-2.selection
Type: object; optional
Extra fields: Not allowed in this object
### observation.eventTime/option-2.selection.assertionRef
Type: string; required in containing object
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-2.selection.consideredAssertionRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-2.selection.consideredAssertionRefs[]
Type: string
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-2.selection.methodRef
Type: string; required in containing object
pattern: "^method:[^\\s:]+(?![\\s\\S])"
### observation.eventTime/option-2.selection.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.selection.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.selection.evaluatedAt
Type: string; required in containing object
### observation.eventTime/option-2.selection.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-2.selection.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.selection.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-2.selection.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-2.selection.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.uncertainty
Type: choice; optional
Choose: Exactly one of the alternatives below
### observation.eventTime/option-2.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.eventTime/option-2.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.eventTime/option-2.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.eventTime/option-2.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.eventTime/option-2.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-2.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-2.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.eventTime/option-2.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.eventTime/option-2.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-2.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-2.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.eventTime/option-2.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.eventTime/option-2.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.eventTime/option-2.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.eventTime/option-2.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-2.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-3.state
Type: string; required in containing object
const: "unknown"
### observation.eventTime/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### observation.eventTime/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-4.state
Type: string; required in containing object
const: "redacted"
### observation.eventTime/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.state
Type: string; required in containing object
const: "known"
### observation.position/option-1.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.latitude
Type: number; required in containing object
minimum: -90
maximum: 90
### observation.position/option-1.value/option-1.longitude
Type: number; required in containing object
minimum: -180
maximum: 180
### observation.position/option-1.value/option-1.kind
Type: string; required in containing object
const: "geodetic"
### observation.position/option-1.value/option-1.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.altitude
Type: object; optional
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.altitude.value
Type: number; required in containing object
### observation.position/option-1.value/option-1.altitude.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.altitude.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-1.altitude.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.altitude.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-1.value/option-1.altitude.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.altitude.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.altitude.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.altitude.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-1.value/option-1.altitude.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.altitude.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.altitude.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.altitude.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.uncertainty
Type: object; optional
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.latitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-1.uncertainty.latitude/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.latitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-1.value/option-1.uncertainty.latitude/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.latitude/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.uncertainty.latitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.uncertainty.latitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-1.value/option-1.uncertainty.latitude/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.latitude/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.uncertainty.latitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.uncertainty.latitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.uncertainty.longitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-1.uncertainty.longitude/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.longitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-1.value/option-1.uncertainty.longitude/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.longitude/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.uncertainty.longitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.uncertainty.longitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-1.value/option-1.uncertainty.longitude/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.longitude/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.uncertainty.longitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.uncertainty.longitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.kind
Type: string; required in containing object
const: "cartesian"
### observation.position/option-1.value/option-2.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.x
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.x.value
Type: number; required in containing object
### observation.position/option-1.value/option-2.x.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.x.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-2.x.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.x.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-1.value/option-2.x.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-1.value/option-2.x.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.x.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-1.value/option-2.x.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.x.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.x.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.x.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.x.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.x.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-1.value/option-2.x.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.x.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.x.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.x.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.x.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-1.value/option-2.x.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-1.value/option-2.x.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.x.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-1.value/option-2.x.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.x.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.x.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.x.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.y
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.y.value
Type: number; required in containing object
### observation.position/option-1.value/option-2.y.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.y.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-2.y.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.y.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-1.value/option-2.y.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-1.value/option-2.y.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.y.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-1.value/option-2.y.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.y.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.y.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.y.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.y.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.y.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-1.value/option-2.y.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.y.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.y.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.y.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.y.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-1.value/option-2.y.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-1.value/option-2.y.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.y.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-1.value/option-2.y.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.y.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.y.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.y.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.z
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.z.value
Type: number; required in containing object
### observation.position/option-1.value/option-2.z.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.z.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-2.z.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.z.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-1.value/option-2.z.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-1.value/option-2.z.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.z.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-1.value/option-2.z.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.z.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.z.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.z.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.z.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.z.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-1.value/option-2.z.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.z.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.z.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.z.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.z.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-1.value/option-2.z.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-1.value/option-2.z.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.z.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-1.value/option-2.z.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.z.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.z.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.z.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.sourceRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.selection
Type: object; optional
Extra fields: Not allowed in this object
### observation.position/option-1.selection.assertionRef
Type: string; required in containing object
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.selection.consideredAssertionRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.selection.consideredAssertionRefs[]
Type: string
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.selection.methodRef
Type: string; required in containing object
pattern: "^method:[^\\s:]+(?![\\s\\S])"
### observation.position/option-1.selection.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.selection.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.selection.evaluatedAt
Type: string; required in containing object
### observation.position/option-1.selection.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.position/option-1.selection.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.position/option-1.selection.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.position/option-1.selection.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.position/option-1.selection.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.state
Type: string; required in containing object
const: "approximate"
### observation.position/option-2.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.latitude
Type: number; required in containing object
minimum: -90
maximum: 90
### observation.position/option-2.value/option-1.longitude
Type: number; required in containing object
minimum: -180
maximum: 180
### observation.position/option-2.value/option-1.kind
Type: string; required in containing object
const: "geodetic"
### observation.position/option-2.value/option-1.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.altitude
Type: object; optional
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.altitude.value
Type: number; required in containing object
### observation.position/option-2.value/option-1.altitude.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.altitude.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-1.altitude.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.altitude.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-2.value/option-1.altitude.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.altitude.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.altitude.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.altitude.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-2.value/option-1.altitude.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.altitude.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.altitude.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.altitude.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.uncertainty
Type: object; optional
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.latitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-1.uncertainty.latitude/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.latitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-2.value/option-1.uncertainty.latitude/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.latitude/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.uncertainty.latitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.uncertainty.latitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-2.value/option-1.uncertainty.latitude/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.latitude/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.uncertainty.latitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.uncertainty.latitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.uncertainty.longitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-1.uncertainty.longitude/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.longitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-2.value/option-1.uncertainty.longitude/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.longitude/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.uncertainty.longitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.uncertainty.longitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-2.value/option-1.uncertainty.longitude/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.longitude/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.uncertainty.longitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.uncertainty.longitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.kind
Type: string; required in containing object
const: "cartesian"
### observation.position/option-2.value/option-2.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.x
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.x.value
Type: number; required in containing object
### observation.position/option-2.value/option-2.x.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.x.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-2.x.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.x.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-2.value/option-2.x.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-2.value/option-2.x.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.x.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-2.value/option-2.x.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.x.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.x.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.x.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.x.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.x.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-2.value/option-2.x.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.x.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.x.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.x.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.x.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-2.value/option-2.x.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-2.value/option-2.x.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.x.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-2.value/option-2.x.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.x.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.x.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.x.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.y
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.y.value
Type: number; required in containing object
### observation.position/option-2.value/option-2.y.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.y.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-2.y.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.y.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-2.value/option-2.y.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-2.value/option-2.y.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.y.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-2.value/option-2.y.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.y.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.y.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.y.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.y.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.y.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-2.value/option-2.y.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.y.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.y.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.y.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.y.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-2.value/option-2.y.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-2.value/option-2.y.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.y.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-2.value/option-2.y.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.y.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.y.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.y.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.z
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.z.value
Type: number; required in containing object
### observation.position/option-2.value/option-2.z.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.z.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-2.z.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.z.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-2.value/option-2.z.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-2.value/option-2.z.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.z.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-2.value/option-2.z.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.z.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.z.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.z.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.z.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.z.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-2.value/option-2.z.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.z.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.z.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.z.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.z.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-2.value/option-2.z.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-2.value/option-2.z.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.z.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-2.value/option-2.z.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.z.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.z.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.z.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.selection
Type: object; optional
Extra fields: Not allowed in this object
### observation.position/option-2.selection.assertionRef
Type: string; required in containing object
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.selection.consideredAssertionRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.selection.consideredAssertionRefs[]
Type: string
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.selection.methodRef
Type: string; required in containing object
pattern: "^method:[^\\s:]+(?![\\s\\S])"
### observation.position/option-2.selection.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.selection.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.selection.evaluatedAt
Type: string; required in containing object
### observation.position/option-2.selection.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.position/option-2.selection.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.position/option-2.selection.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.position/option-2.selection.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.position/option-2.selection.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-3.state
Type: string; required in containing object
const: "unknown"
### observation.position/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### observation.position/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-4.state
Type: string; required in containing object
const: "redacted"
### observation.position/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.sources
Type: list of object; required in containing object
### observation.sources[]
Type: object
Extra fields: Not allowed in this object
### observation.sources[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.sources[].kind
Type: string; required in containing object
enum: ["document","testimony","instrument_data","other","unknown"]
### observation.sources[].access
Type: string; required in containing object
enum: ["public","restricted","withheld","unknown"]
### observation.sources[].title
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.sources[].uri
Type: string; optional
format: "uri"
### observation.sources[].digest
Type: object; optional
Extra fields: Not allowed in this object
### observation.sources[].digest.algorithm
Type: string; required in containing object
const: "sha256"
### observation.sources[].digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation.products
Type: list of choice; required in containing object
### observation.products[]
Type: choice
Choose: Exactly one of the alternatives below
### observation.products[]/option-1
Type: object
Extra fields: Not allowed in this object
### observation.products[]/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.products[]/option-1.format
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.products[]/option-1.access
Type: string; required in containing object
enum: ["public","restricted","withheld","unknown"]
### observation.products[]/option-1.uri
Type: string; optional
format: "uri"
### observation.products[]/option-1.digest
Type: object; optional
Extra fields: Not allowed in this object
### observation.products[]/option-1.digest.algorithm
Type: string; required in containing object
const: "sha256"
### observation.products[]/option-1.digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation.products[]/option-1.kind
Type: string; required in containing object
const: "raw"
### observation.products[]/option-1.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.products[]/option-1.sourceRefs[]
Type: string
pattern: "^(?:source):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.products[]/option-2
Type: object
Extra fields: Not allowed in this object
### observation.products[]/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.products[]/option-2.format
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.products[]/option-2.access
Type: string; required in containing object
enum: ["public","restricted","withheld","unknown"]
### observation.products[]/option-2.uri
Type: string; optional
format: "uri"
### observation.products[]/option-2.digest
Type: object; optional
Extra fields: Not allowed in this object
### observation.products[]/option-2.digest.algorithm
Type: string; required in containing object
const: "sha256"
### observation.products[]/option-2.digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation.products[]/option-2.kind
Type: string; required in containing object
const: "derived"
### observation.products[]/option-2.generatedBy
Type: string; required in containing object
pattern: "^(?:process):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.methods
Type: list of object; required in containing object
### observation.methods[]
Type: object
Extra fields: Not allowed in this object
### observation.methods[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.methods[].version
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.methods[].description
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.methods[].uri
Type: string; optional
format: "uri"
### observation.frames
Type: list of choice; required in containing object
### observation.frames[]
Type: choice
Choose: Exactly one of the alternatives below
### observation.frames[]/option-1
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.frames[]/option-1.kind
Type: string; required in containing object
const: "geodetic"
### observation.frames[]/option-1.definition
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.frames[]/option-1.definition/option-1
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.definition/option-1.state
Type: string; required in containing object
const: "identified"
### observation.frames[]/option-1.definition/option-1.authority
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.definition/option-1.code
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.definition/option-1.revision
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.definition/option-2
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.definition/option-2.state
Type: string; required in containing object
const: "described"
### observation.frames[]/option-1.definition/option-2.description
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.definition/option-3
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.definition/option-3.state
Type: string; required in containing object
const: "unknown"
### observation.frames[]/option-1.definition/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.angularUnit
Type: string; required in containing object
const: "deg"
### observation.frames[]/option-1.vertical
Type: object; optional
Extra fields: Not allowed in this object
### observation.frames[]/option-1.vertical.definition
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.frames[]/option-1.vertical.definition/option-1
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.vertical.definition/option-1.state
Type: string; required in containing object
const: "identified"
### observation.frames[]/option-1.vertical.definition/option-1.authority
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.vertical.definition/option-1.code
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.vertical.definition/option-1.revision
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.vertical.definition/option-2
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.vertical.definition/option-2.state
Type: string; required in containing object
const: "described"
### observation.frames[]/option-1.vertical.definition/option-2.description
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.vertical.definition/option-3
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.vertical.definition/option-3.state
Type: string; required in containing object
const: "unknown"
### observation.frames[]/option-1.vertical.definition/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.vertical.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-2
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.frames[]/option-2.kind
Type: string; required in containing object
const: "cartesian"
### observation.frames[]/option-2.definition
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.frames[]/option-2.definition/option-1
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-2.definition/option-1.state
Type: string; required in containing object
const: "identified"
### observation.frames[]/option-2.definition/option-1.authority
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-2.definition/option-1.code
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-2.definition/option-1.revision
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.frames[]/option-2.definition/option-2
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-2.definition/option-2.state
Type: string; required in containing object
const: "described"
### observation.frames[]/option-2.definition/option-2.description
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-2.definition/option-3
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-2.definition/option-3.state
Type: string; required in containing object
const: "unknown"
### observation.frames[]/option-2.definition/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions
Type: list of choice; required in containing object
### observation.assertions[]
Type: choice
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-1.field
Type: string; required in containing object
const: "eventTime"
### observation.assertions[]/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### observation.assertions[]/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### observation.assertions[]/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.assertions[]/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### observation.assertions[]/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.assertions[]/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### observation.assertions[]/option-1.value/option-1/option-3.value
Type: string; required in containing object
### observation.assertions[]/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.assertions[]/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.assertions[]/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.assertions[]/option-1.value/option-1/option-4.value
Type: string; required in containing object
### observation.assertions[]/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.assertions[]/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.assertions[]/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.assertions[]/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.assertions[]/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.assertions[]/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### observation.assertions[]/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### observation.assertions[]/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.assertions[]/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### observation.assertions[]/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.assertions[]/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### observation.assertions[]/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### observation.assertions[]/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.assertions[]/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.assertions[]/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.assertions[]/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### observation.assertions[]/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.assertions[]/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.assertions[]/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.assertions[]/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.assertions[]/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.assertions[]/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### observation.assertions[]/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.assertions[]/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### observation.assertions[]/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.assertions[]/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### observation.assertions[]/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### observation.assertions[]/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.assertions[]/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.assertions[]/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.assertions[]/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### observation.assertions[]/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.assertions[]/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.assertions[]/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.assertions[]/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.assertions[]/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.assertions[]/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### observation.assertions[]/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation.assertions[]/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### observation.assertions[]/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### observation.assertions[]/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### observation.assertions[]/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### observation.assertions[]/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### observation.assertions[]/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.field
Type: string; required in containing object
const: "position"
### observation.assertions[]/option-2.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.latitude
Type: number; required in containing object
minimum: -90
maximum: 90
### observation.assertions[]/option-2.value/option-1.longitude
Type: number; required in containing object
minimum: -180
maximum: 180
### observation.assertions[]/option-2.value/option-1.kind
Type: string; required in containing object
const: "geodetic"
### observation.assertions[]/option-2.value/option-1.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.altitude
Type: object; optional
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.altitude.value
Type: number; required in containing object
### observation.assertions[]/option-2.value/option-1.altitude.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.uncertainty
Type: object; optional
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.kind
Type: string; required in containing object
const: "cartesian"
### observation.assertions[]/option-2.value/option-2.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.x
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.x.value
Type: number; required in containing object
### observation.assertions[]/option-2.value/option-2.x.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.x.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.y
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.y.value
Type: number; required in containing object
### observation.assertions[]/option-2.value/option-2.y.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.y.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.z
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.z.value
Type: number; required in containing object
### observation.assertions[]/option-2.value/option-2.z.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.z.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### observation.assertions[]/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation.assertions[]/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### observation.assertions[]/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### observation.assertions[]/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### observation.assertions[]/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### observation.assertions[]/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### observation.assertions[]/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-3.field
Type: string; required in containing object
const: "measurement"
### observation.assertions[]/option-3.measurementId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-3.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.value.value
Type: number; required in containing object
### observation.assertions[]/option-3.value.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-3.value.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-3.value.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.value.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-3.value.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-3.value.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.value.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-3.value.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-3.value.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-3.value.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-3.value.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-3.value.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.value.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-3.value.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-3.value.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-3.value.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-3.value.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-3.value.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-3.value.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-3.value.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.value.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-3.value.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-3.value.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-3.value.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-3.value.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-3.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.provenance.sourceRef
Type: string; required in containing object
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-3.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### observation.assertions[]/option-3.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation.assertions[]/option-3.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-3.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### observation.assertions[]/option-3.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### observation.assertions[]/option-3.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### observation.assertions[]/option-3.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-3.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-3.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### observation.assertions[]/option-3.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### observation.assertions[]/option-3.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-3.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.measurements
Type: list of object; required in containing object
### observation.measurements[]
Type: object
Extra fields: Not allowed in this object
### observation.measurements[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].quantity
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].value
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.measurements[].value.value
Type: number; required in containing object
### observation.measurements[].value.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].value.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.measurements[].value.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.measurements[].value.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.measurements[].value.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.measurements[].value.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.measurements[].value.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.measurements[].value.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.measurements[].value.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].value.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.measurements[].value.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].value.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.measurements[].value.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.measurements[].value.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.measurements[].value.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].value.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.measurements[].value.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].value.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.measurements[].value.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.measurements[].value.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.measurements[].value.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.measurements[].value.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.measurements[].value.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].value.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.measurements[].value.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.measurements[].sourceRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].frameRef
Type: string; optional
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].selection
Type: object; optional
Extra fields: Not allowed in this object
### observation.measurements[].selection.assertionRef
Type: string; required in containing object
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].selection.consideredAssertionRefs
Type: list of string; required in containing object
minItems: 1
### observation.measurements[].selection.consideredAssertionRefs[]
Type: string
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].selection.methodRef
Type: string; required in containing object
pattern: "^method:[^\\s:]+(?![\\s\\S])"
### observation.measurements[].selection.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].selection.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].selection.evaluatedAt
Type: string; required in containing object
### observation.measurements[].selection.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.measurements[].selection.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.measurements[].selection.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.measurements[].selection.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.measurements[].selection.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.processing
Type: list of object; required in containing object
### observation.processing[]
Type: object
Extra fields: Not allowed in this object
### observation.processing[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.processing[].methodRef
Type: string; required in containing object
pattern: "^(?:method):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.processing[].methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.processing[].performedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.processing[].performedAt
Type: string; required in containing object
### observation.processing[].performedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.processing[].performedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.processing[].performedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.processing[].performedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.processing[].inputRefs
Type: list of string; required in containing object
minItems: 1
### observation.processing[].inputRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.processing[].outputRefs
Type: list of string; required in containing object
minItems: 1
### observation.processing[].outputRefs[]
Type: string
pattern: "^(?:product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.extensions
Type: object; optional
### observation.extensions/keys
Type: string
pattern: "^[a-z][a-z0-9_-]*(?:\\.[a-z0-9_-]+)+(?![\\s\\S])"
### observation.extensions/value
Type: JSON value
Reference: #/$defs/__schema0
Value: Arbitrary JSON; extension contents are not semantically checked by the core.
### claims
Type: list of choice; required in containing object
Source statements and assessed or unassessed interpretations, with their attribution and references.
### claims[]
Type: choice
Choose: At least one of the alternatives below
### claims[]/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.id
Type: string; required in containing object
Unique ID for this claim in the history. Every revision receives a new ID.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.recordedAt
Type: string; required in containing object
When this claim was recorded, not when the observed event occurred. A revision cannot predate its predecessor.
### claims[]/option-1.recordedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-1.recordedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-1.recordedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-1.recordedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-1.topic
Type: string; required in containing object
The stated question or topic. This free text is not a vocabulary-term reference.
minLength: 1
pattern: "\\S"
### claims[]/option-1.subject
Type: choice; required in containing object
What this claim concerns: the embedded observation or a named measurement. Supporting inputs remain separate.
Choose: Exactly one of the alternatives below
### claims[]/option-1.subject/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-1.kind
Type: string; required in containing object
const: "observation"
### claims[]/option-1.subject/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.kind
Type: string; required in containing object
const: "measurement"
### claims[]/option-1.subject/option-2.measurementId
Type: string; required in containing object
ID of the measurement under review in observation.measurements, without the measurement: prefix.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.supersedes
Type: list of string; optional
Earlier claim references replaced by this revision. Retain those claims in the document. Kind, topic and subject must match; an assessed predecessor also requires the same evaluator.
minItems: 1
### claims[]/option-1.supersedes[]
Type: string
pattern: "^claim:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.kind
Type: string; required in containing object
const: "source_assertion"
### claims[]/option-1.text
Type: string; required in containing object
The source statement being retained. Preserve its wording and qualifications rather than turning it into an evaluator's conclusion.
minLength: 1
pattern: "\\S"
### claims[]/option-1.reportedLevel
Type: string; optional
Optional original source label, such as confirmed. It is not an assessed outcome or a validated support level.
minLength: 1
pattern: "\\S"
### claims[]/option-1.provenance
Type: object; required in containing object
The source or product containing the statement, with optional locator and original-voice/extractor attribution.
Extra fields: Not allowed in this object
### claims[]/option-1.provenance.sourceRef
Type: string; required in containing object
An exact source: or product: reference in the embedded observation.
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.provenance.sourceDigest
Type: object; optional
Declared source digest. The parser compares declarations if both are supplied; it does not read or authenticate source bytes.
Extra fields: Not allowed in this object
### claims[]/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### claims[]/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-1.provenance.locator
Type: choice; optional
A page, time range in seconds, or JSON Pointer locating the source passage. The parser checks its shape, not the passage's content.
Choose: Exactly one of the alternatives below
### claims[]/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### claims[]/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### claims[]/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### claims[]/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### claims[]/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### claims[]/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### claims[]/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### claims[]/option-1.provenance.attributedTo
Type: string; optional
Optional original author or speaker. Leave it omitted when unknown; do not substitute the extractor.
minLength: 1
pattern: "\\S"
### claims[]/option-1.provenance.extractedBy
Type: string; optional
Optional person or system that extracted the statement, distinct from its original author or speaker.
minLength: 1
pattern: "\\S"
### claims[]/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.id
Type: string; required in containing object
Unique ID for this claim in the history. Every revision receives a new ID.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.recordedAt
Type: string; required in containing object
When this claim was recorded, not when the observed event occurred. A revision cannot predate its predecessor.
### claims[]/option-2.recordedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-2.recordedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-2.recordedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-2.recordedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-2.topic
Type: string; required in containing object
The stated question or topic. This free text is not a vocabulary-term reference.
minLength: 1
pattern: "\\S"
### claims[]/option-2.subject
Type: choice; required in containing object
What this claim concerns: the embedded observation or a named measurement. Supporting inputs remain separate.
Choose: Exactly one of the alternatives below
### claims[]/option-2.subject/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-1.kind
Type: string; required in containing object
const: "observation"
### claims[]/option-2.subject/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.kind
Type: string; required in containing object
const: "measurement"
### claims[]/option-2.subject/option-2.measurementId
Type: string; required in containing object
ID of the measurement under review in observation.measurements, without the measurement: prefix.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.supersedes
Type: list of string; optional
Earlier claim references replaced by this revision. Retain those claims in the document. Kind, topic and subject must match; an assessed predecessor also requires the same evaluator.
minItems: 1
### claims[]/option-2.supersedes[]
Type: string
pattern: "^claim:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.kind
Type: string; required in containing object
const: "assessment"
### claims[]/option-2.inputRefs
Type: list of string; required in containing object
Local claim:, source:, product:, assertion: or measurement: references used in this review. An empty list is allowed but does not establish research support.
### claims[]/option-2.inputRefs[]
Type: string
pattern: "^(?:claim|source|product|assertion|measurement):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.rationale
Type: string; required in containing object
Why the question is unassessed, or how the evaluator reached the stated outcome. Keep limitations explicit.
minLength: 1
pattern: "\\S"
### claims[]/option-2.status
Type: string; required in containing object
const: "unassessed"
### claims[]/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.id
Type: string; required in containing object
Unique ID for this claim in the history. Every revision receives a new ID.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.recordedAt
Type: string; required in containing object
When this claim was recorded, not when the observed event occurred. A revision cannot predate its predecessor.
### claims[]/option-3.recordedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-3.recordedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-3.recordedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-3.recordedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-3.topic
Type: string; required in containing object
The stated question or topic. This free text is not a vocabulary-term reference.
minLength: 1
pattern: "\\S"
### claims[]/option-3.subject
Type: choice; required in containing object
What this claim concerns: the embedded observation or a named measurement. Supporting inputs remain separate.
Choose: Exactly one of the alternatives below
### claims[]/option-3.subject/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-1.kind
Type: string; required in containing object
const: "observation"
### claims[]/option-3.subject/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.kind
Type: string; required in containing object
const: "measurement"
### claims[]/option-3.subject/option-2.measurementId
Type: string; required in containing object
ID of the measurement under review in observation.measurements, without the measurement: prefix.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.supersedes
Type: list of string; optional
Earlier claim references replaced by this revision. Retain those claims in the document. Kind, topic and subject must match; an assessed predecessor also requires the same evaluator.
minItems: 1
### claims[]/option-3.supersedes[]
Type: string
pattern: "^claim:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.kind
Type: string; required in containing object
const: "assessment"
### claims[]/option-3.inputRefs
Type: list of string; required in containing object
Local claim:, source:, product:, assertion: or measurement: references used in this review. An empty list is allowed but does not establish research support.
### claims[]/option-3.inputRefs[]
Type: string
pattern: "^(?:claim|source|product|assertion|measurement):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.rationale
Type: string; required in containing object
Why the question is unassessed, or how the evaluator reached the stated outcome. Keep limitations explicit.
minLength: 1
pattern: "\\S"
### claims[]/option-3.status
Type: string; required in containing object
const: "assessed"
### claims[]/option-3.outcome
Type: string; required in containing object
The evaluator's declared result: reported, confirmed, absent or inconclusive. It is not assigned by the parser.
enum: ["reported","confirmed","absent","inconclusive"]
### claims[]/option-3.evaluatedBy
Type: string; required in containing object
Declared evaluator identity. Matching labels are required for assessed revisions; this is not identity authentication.
minLength: 1
pattern: "\\S"
### claims[]/option-3.evaluatedAt
Type: string; required in containing object
When the assessment was performed. It cannot be later than this claim's recordedAt.
### claims[]/option-3.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-3.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-3.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-3.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-3.methodRef
Type: string; required in containing object
Exact method: reference in observation.methods. The parser resolves the declaration; it does not execute the method.
pattern: "^method:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.methodVersion
Type: string; required in containing object
Version matching the referenced method declaration. Retain the method description so the review can be understood.
minLength: 1
pattern: "\\S"
### claims[]/option-3.confidence
Type: number; optional
Optional evaluator-declared number from 0 to 1. Omission is not zero; the parser does not establish calibration or a probability of truth.
minimum: 0
maximum: 1
### extensions
Type: object; optional
Namespaced JSON for additional information. The core does not validate its meaning.
### extensions/keys
Type: string
pattern: "^[a-z][a-z0-9_-]*(?:\\.[a-z0-9_-]+)+(?![\\s\\S])"
### extensions/value
Type: JSON value
Reference: #/$defs/__schema0
Value: Arbitrary JSON; extension contents are not semantically checked by the core.
# Event and setting fields (/v2/docs/reference/context)
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
Extra fields: Not allowed at either document root.
## Event and setting
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
Sourced descriptions of objects, places, platforms, historical time and environmental conditions.
Schema: urn:disclosureos:experimental:observation-context:0.1.0
Export: @disclosureos/records/experimental/v2/context/schema/0.1.0
### kind
Type: string; required in containing object
Identifies the document kind.
const: "observation_context"
### schemaVersion
Type: string; required in containing object
The document contract version.
const: "0.1.0"
### id
Type: string; required in containing object
The scoped document identity.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observationRef
Type: object; required in containing object
Exact observation snapshot referenced by this context.
Extra fields: Not allowed in this object
### observationRef.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observationRef.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation:0.1.0"
### observationRef.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### acquisitionRef
Type: object; optional
Optional exact acquisition snapshot for capture references.
Extra fields: Not allowed in this object
### acquisitionRef.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### acquisitionRef.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:acquisition-context:0.1.0"
### acquisitionRef.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### recordedAt
Type: string; required in containing object
When the context declarations were recorded.
### recordedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### recordedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### recordedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### recordedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### recordedBy
Type: string; required in containing object
Who recorded the context declarations.
minLength: 1
pattern: "\\S"
### entities
Type: list of choice; required in containing object
Typed event, object, place, platform, environment, temporal and collection descriptions.
minItems: 1
### entities[]
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.eventType
Type: list of object; optional
Sourced event type assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-1.fields.eventType[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.eventType[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.eventType[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.eventType[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.eventType[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.eventType[].content/option-1.value
Type: string; required in containing object
Sourced event descriptor; not an origin hypothesis.
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.eventType[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.eventType[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.eventType[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.eventType[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.eventType[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.eventType[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.eventType[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.eventType[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.eventType[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.eventType[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.eventType[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.eventType[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.eventType[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.eventType[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.eventType[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.eventType[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.eventType[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.eventType[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.eventType[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.eventType[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.eventType[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.eventType[].content/option-2.value
Type: string; required in containing object
Sourced event descriptor; not an origin hypothesis.
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.eventType[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.eventType[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.eventType[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.eventType[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.eventType[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.eventType[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.eventType[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.eventType[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.eventType[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.eventType[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.eventType[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.eventType[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.eventType[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.eventType[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.eventType[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.eventType[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.eventType[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.eventType[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.eventType[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.eventType[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.eventType[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.eventType[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.eventType[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.eventType[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.eventType[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.eventType[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.eventType[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.eventType[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.eventType[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.eventType[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.eventType[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.eventType[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.eventType[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.eventType[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.eventType[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.eventType[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.eventType[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.eventType[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.eventType[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.eventType[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.eventType[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.eventType[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.eventType[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.eventType[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.eventType[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.eventType[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.eventType[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description
Type: list of object; optional
Sourced description assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-1.fields.description[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.description[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.description[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.description[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.description[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.description[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.description[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.description[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.description[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.description[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.description[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.description[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.description[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.description[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.description[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.description[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.description[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.description[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.description[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.description[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.description[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.temporalId
Type: list of object; optional
Sourced temporal id assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-1.fields.temporalId[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.temporalId[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.temporalId[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.temporalId[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.temporalId[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.temporalId[].content/option-1.value
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.temporalId[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.temporalId[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.temporalId[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.temporalId[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.temporalId[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.temporalId[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.temporalId[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.temporalId[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.temporalId[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.temporalId[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.temporalId[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.temporalId[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.temporalId[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.temporalId[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.temporalId[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.temporalId[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.temporalId[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.temporalId[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.temporalId[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.temporalId[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.temporalId[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.temporalId[].content/option-2.value
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.temporalId[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.temporalId[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.temporalId[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.temporalId[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.temporalId[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.temporalId[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.temporalId[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.temporalId[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.temporalId[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.temporalId[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.temporalId[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.temporalId[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.temporalId[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.temporalId[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.temporalId[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.temporalId[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.temporalId[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.temporalId[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.temporalId[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.temporalId[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.temporalId[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.temporalId[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.temporalId[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.temporalId[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.temporalId[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.temporalId[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.temporalId[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.temporalId[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.temporalId[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.temporalId[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.temporalId[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.temporalId[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.temporalId[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.temporalId[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.temporalId[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.temporalId[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.temporalId[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.temporalId[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.temporalId[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.temporalId[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.temporalId[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.temporalId[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.temporalId[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.temporalId[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.temporalId[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.temporalId[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.temporalId[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.placeIds
Type: list of object; optional
Sourced place ids assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-1.fields.placeIds[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.placeIds[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.placeIds[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.placeIds[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.placeIds[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.placeIds[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-1.fields.placeIds[].content/option-1.value[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.placeIds[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.placeIds[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.placeIds[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.placeIds[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.placeIds[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.placeIds[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.placeIds[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.placeIds[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.placeIds[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.placeIds[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.placeIds[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.placeIds[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.placeIds[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.placeIds[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.placeIds[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.placeIds[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.placeIds[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.placeIds[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.placeIds[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.placeIds[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.placeIds[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.placeIds[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-1.fields.placeIds[].content/option-2.value[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.placeIds[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.placeIds[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.placeIds[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.placeIds[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.placeIds[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.placeIds[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.placeIds[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.placeIds[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.placeIds[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.placeIds[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.placeIds[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.placeIds[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.placeIds[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.placeIds[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.placeIds[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.placeIds[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.placeIds[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.placeIds[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.placeIds[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.placeIds[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.placeIds[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.placeIds[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.placeIds[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.placeIds[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.placeIds[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.placeIds[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.placeIds[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.placeIds[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.placeIds[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.placeIds[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.placeIds[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.placeIds[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.placeIds[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.placeIds[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.placeIds[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.placeIds[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.placeIds[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.placeIds[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.placeIds[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.placeIds[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.placeIds[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.placeIds[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.placeIds[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.placeIds[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.placeIds[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.placeIds[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.placeIds[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.measurements
Type: list of object; optional
### entities[]/option-1.measurements[]
Type: object
Association to an Observation measurement. No copied numeric value.
Extra fields: Not allowed in this object
### entities[]/option-1.measurements[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.measurements[].role
Type: string; required in containing object
enum: ["size","count","speed","altitude","heading","ambient_temperature","relative_humidity","wind_speed","moon_illumination","duration","distance","bearing","water_depth","coordinate_precision","time_alignment"]
### entities[]/option-1.measurements[].measurementId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.measurements[].relatedPlaceId
Type: string; optional
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.selections
Type: list of object; optional
### entities[]/option-1.selections[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.selections[].field
Type: string; required in containing object
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.selections[].assertionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.selections[].consideredAssertionIds
Type: list of string; required in containing object
minItems: 1
### entities[]/option-1.selections[].consideredAssertionIds[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.selections[].evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.selections[].evaluatedAt
Type: string; required in containing object
### entities[]/option-1.selections[].evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.selections[].evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.selections[].evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.selections[].evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.selections[].methodRef
Type: string; required in containing object
pattern: "^method:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.selections[].methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.selections[].rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.kind
Type: string; required in containing object
const: "reported_object"
### entities[]/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.shape
Type: list of object; optional
Sourced shape assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-2.fields.shape[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.shape[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.shape[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.shape[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.shape[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.shape[].content/option-1.value
Type: string; required in containing object
Reported shape of the observed object.
enum: ["sphere","orb","disc","saucer","oval","egg","cylinder","cigar","tic_tac","triangle","delta","boomerang","chevron","diamond","rectangle","square","cube","cross","star","amorphous","changing","light_only","other","unknown"]
### entities[]/option-2.fields.shape[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.shape[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.shape[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.shape[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.shape[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.shape[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.shape[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.shape[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.shape[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.shape[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.shape[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.shape[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.shape[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.shape[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.shape[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.shape[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.shape[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.shape[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.shape[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.shape[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.shape[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.shape[].content/option-2.value
Type: string; required in containing object
Reported shape of the observed object.
enum: ["sphere","orb","disc","saucer","oval","egg","cylinder","cigar","tic_tac","triangle","delta","boomerang","chevron","diamond","rectangle","square","cube","cross","star","amorphous","changing","light_only","other","unknown"]
### entities[]/option-2.fields.shape[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.shape[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.shape[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.shape[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.shape[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.shape[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.shape[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.shape[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.shape[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.shape[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.shape[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.shape[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.shape[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.shape[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.shape[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.shape[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.shape[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.shape[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.shape[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.shape[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.shape[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.shape[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.shape[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.shape[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.shape[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.shape[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.shape[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.shape[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.shape[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.shape[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.shape[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.shape[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.shape[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.shape[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.shape[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.shape[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.shape[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.shape[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.shape[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.shape[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.shape[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.shape[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.shape[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.shape[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.shape[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.shape[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.shape[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sizeDescription
Type: list of object; optional
Sourced size description assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-2.fields.sizeDescription[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sizeDescription[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.sizeDescription[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.sizeDescription[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sizeDescription[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.sizeDescription[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sizeDescription[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sizeDescription[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.sizeDescription[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sizeDescription[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.sizeDescription[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.sizeDescription[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.sizeDescription[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sizeDescription[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.sizeDescription[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.sizeDescription[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sizeDescription[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.sizeDescription[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.sizeDescription[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.sizeDescription[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sizeDescription[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.sizeDescription[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.sizeDescription[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sizeDescription[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sizeDescription[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sizeDescription[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sizeDescription[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.sizeDescription[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sizeDescription[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sizeDescription[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sizeDescription[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.sizeDescription[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sizeDescription[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.sizeDescription[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.sizeDescription[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.sizeDescription[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sizeDescription[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.sizeDescription[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.sizeDescription[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sizeDescription[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.sizeDescription[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.sizeDescription[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.sizeDescription[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sizeDescription[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.sizeDescription[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.sizeDescription[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sizeDescription[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sizeDescription[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sizeDescription[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sizeDescription[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.sizeDescription[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.sizeDescription[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sizeDescription[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.sizeDescription[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sizeDescription[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sizeDescription[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.sizeDescription[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sizeDescription[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sizeDescription[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.sizeDescription[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sizeDescription[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.sizeDescription[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.sizeDescription[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.sizeDescription[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sizeDescription[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.sizeDescription[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.sizeDescription[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sizeDescription[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.sizeDescription[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.sizeDescription[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.sizeDescription[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sizeDescription[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.sizeDescription[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.sizeDescription[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sizeDescription[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.color
Type: list of object; optional
Sourced color assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-2.fields.color[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.color[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.color[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.color[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.color[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.color[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.color[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.color[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.color[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.color[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.color[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.color[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.color[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.color[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.color[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.color[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.color[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.color[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.color[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.color[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.color[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.color[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.color[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.color[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.color[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.color[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.color[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.color[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.color[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.color[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.color[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.color[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.color[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.color[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.color[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.color[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.color[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.color[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.color[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.color[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.color[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.color[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.color[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.color[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.color[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.color[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.color[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.color[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.color[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.color[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.color[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.color[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.color[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.color[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.color[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.color[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.color[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.color[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.color[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.color[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.color[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.color[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.color[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.color[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.color[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.color[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.color[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.color[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.color[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.color[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.color[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.color[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.color[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.color[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.color[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.secondaryColors
Type: list of object; optional
Sourced secondary colors assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-2.fields.secondaryColors[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.secondaryColors[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.secondaryColors[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.secondaryColors[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.secondaryColors[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.secondaryColors[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-2.fields.secondaryColors[].content/option-1.value[]
Type: string
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.secondaryColors[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.secondaryColors[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.secondaryColors[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.secondaryColors[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.secondaryColors[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.secondaryColors[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.secondaryColors[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.secondaryColors[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.secondaryColors[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.secondaryColors[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.secondaryColors[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.secondaryColors[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.secondaryColors[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.secondaryColors[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.secondaryColors[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.secondaryColors[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.secondaryColors[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.secondaryColors[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.secondaryColors[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.secondaryColors[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.secondaryColors[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.secondaryColors[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-2.fields.secondaryColors[].content/option-2.value[]
Type: string
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.secondaryColors[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.secondaryColors[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.secondaryColors[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.secondaryColors[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.secondaryColors[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.secondaryColors[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.secondaryColors[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.secondaryColors[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.secondaryColors[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.secondaryColors[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.secondaryColors[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.secondaryColors[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.secondaryColors[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.secondaryColors[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.secondaryColors[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.secondaryColors[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.secondaryColors[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.secondaryColors[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.secondaryColors[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.secondaryColors[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.secondaryColors[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.secondaryColors[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.secondaryColors[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.secondaryColors[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.secondaryColors[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.secondaryColors[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.secondaryColors[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.secondaryColors[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.secondaryColors[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.secondaryColors[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.secondaryColors[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.secondaryColors[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.secondaryColors[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.secondaryColors[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.secondaryColors[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.secondaryColors[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.secondaryColors[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.secondaryColors[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.secondaryColors[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.secondaryColors[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.secondaryColors[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.secondaryColors[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.secondaryColors[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.secondaryColors[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.secondaryColors[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.secondaryColors[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.secondaryColors[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.luminosity
Type: list of object; optional
Sourced luminosity assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-2.fields.luminosity[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.luminosity[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.luminosity[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.luminosity[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.luminosity[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.luminosity[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.luminosity[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.luminosity[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.luminosity[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.luminosity[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.luminosity[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.luminosity[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.luminosity[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.luminosity[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.luminosity[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.luminosity[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.luminosity[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.luminosity[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.luminosity[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.luminosity[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.luminosity[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.luminosity[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.luminosity[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.luminosity[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.luminosity[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.luminosity[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.luminosity[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.luminosity[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.luminosity[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.luminosity[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.luminosity[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.luminosity[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.luminosity[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.luminosity[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.luminosity[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.luminosity[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.luminosity[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.luminosity[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.luminosity[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.luminosity[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.luminosity[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.luminosity[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.luminosity[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.luminosity[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.luminosity[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.luminosity[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.luminosity[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.luminosity[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.luminosity[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.luminosity[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.luminosity[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.luminosity[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.luminosity[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.luminosity[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.luminosity[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.luminosity[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.luminosity[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.luminosity[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.luminosity[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.luminosity[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.luminosity[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.luminosity[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.luminosity[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.luminosity[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.luminosity[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.luminosity[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.luminosity[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.luminosity[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.luminosity[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.luminosity[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.luminosity[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.luminosity[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.luminosity[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.luminosity[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.luminosity[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sound
Type: list of object; optional
Sourced sound assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-2.fields.sound[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sound[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.sound[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.sound[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sound[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.sound[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sound[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sound[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.sound[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sound[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.sound[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.sound[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.sound[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sound[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.sound[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.sound[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sound[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.sound[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.sound[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.sound[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sound[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.sound[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.sound[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sound[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sound[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sound[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sound[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.sound[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sound[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sound[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sound[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.sound[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sound[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.sound[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.sound[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.sound[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sound[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.sound[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.sound[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sound[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.sound[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.sound[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.sound[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sound[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.sound[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.sound[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sound[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sound[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sound[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sound[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.sound[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.sound[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sound[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.sound[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sound[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sound[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.sound[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sound[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sound[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.sound[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sound[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.sound[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.sound[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.sound[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sound[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.sound[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.sound[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sound[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.sound[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.sound[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.sound[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sound[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.sound[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.sound[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sound[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.soundDescription
Type: list of object; optional
Sourced sound description assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-2.fields.soundDescription[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.soundDescription[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.soundDescription[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.soundDescription[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.soundDescription[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.soundDescription[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.soundDescription[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.soundDescription[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.soundDescription[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.soundDescription[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.soundDescription[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.soundDescription[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.soundDescription[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.soundDescription[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.soundDescription[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.soundDescription[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.soundDescription[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.soundDescription[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.soundDescription[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.soundDescription[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.soundDescription[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.soundDescription[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.soundDescription[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.soundDescription[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.soundDescription[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.soundDescription[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.soundDescription[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.soundDescription[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.soundDescription[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.soundDescription[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.soundDescription[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.soundDescription[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.soundDescription[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.soundDescription[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.soundDescription[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.soundDescription[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.soundDescription[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.soundDescription[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.soundDescription[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.soundDescription[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.soundDescription[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.soundDescription[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.soundDescription[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.soundDescription[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.soundDescription[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.soundDescription[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.soundDescription[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.soundDescription[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.soundDescription[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.soundDescription[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.soundDescription[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.soundDescription[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.soundDescription[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.soundDescription[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.soundDescription[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.soundDescription[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.soundDescription[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.soundDescription[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.soundDescription[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.soundDescription[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.soundDescription[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.soundDescription[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.soundDescription[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.soundDescription[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.soundDescription[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.soundDescription[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.soundDescription[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.soundDescription[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.soundDescription[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.soundDescription[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.soundDescription[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.soundDescription[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.soundDescription[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.soundDescription[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.soundDescription[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.surfaceDetails
Type: list of object; optional
Sourced surface details assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-2.fields.surfaceDetails[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.surfaceDetails[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.surfaceDetails[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.surfaceDetails[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.surfaceDetails[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.surfaceDetails[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.surfaceDetails[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.surfaceDetails[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.surfaceDetails[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.surfaceDetails[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.surfaceDetails[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.surfaceDetails[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.surfaceDetails[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.surfaceDetails[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.surfaceDetails[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.surfaceDetails[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.surfaceDetails[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.surfaceDetails[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.surfaceDetails[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.surfaceDetails[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.surfaceDetails[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.surfaceDetails[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.surfaceDetails[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.surfaceDetails[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.surfaceDetails[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.surfaceDetails[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.surfaceDetails[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.surfaceDetails[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.surfaceDetails[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.surfaceDetails[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.surfaceDetails[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.surfaceDetails[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.surfaceDetails[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.surfaceDetails[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.surfaceDetails[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.surfaceDetails[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.surfaceDetails[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.surfaceDetails[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.surfaceDetails[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.surfaceDetails[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.surfaceDetails[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.surfaceDetails[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.surfaceDetails[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.surfaceDetails[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.surfaceDetails[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.surfaceDetails[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.surfaceDetails[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.surfaceDetails[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.surfaceDetails[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.surfaceDetails[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.surfaceDetails[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.surfaceDetails[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.surfaceDetails[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.surfaceDetails[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.surfaceDetails[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.surfaceDetails[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.surfaceDetails[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.surfaceDetails[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.surfaceDetails[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.surfaceDetails[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.surfaceDetails[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.surfaceDetails[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.surfaceDetails[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.surfaceDetails[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.surfaceDetails[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.surfaceDetails[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.surfaceDetails[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.surfaceDetails[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.surfaceDetails[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.surfaceDetails[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.surfaceDetails[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.surfaceDetails[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.surfaceDetails[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.surfaceDetails[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.surfaceDetails[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.formation
Type: list of object; optional
Sourced formation assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-2.fields.formation[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.formation[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.formation[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.formation[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.formation[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.formation[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.formation[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.formation[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.formation[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.formation[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.formation[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.formation[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.formation[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.formation[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.formation[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.formation[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.formation[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.formation[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.formation[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.formation[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.formation[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.formation[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.formation[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.formation[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.formation[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.formation[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.formation[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.formation[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.formation[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.formation[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.formation[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.formation[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.formation[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.formation[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.formation[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.formation[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.formation[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.formation[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.formation[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.formation[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.formation[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.formation[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.formation[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.formation[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.formation[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.formation[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.formation[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.formation[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.formation[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.formation[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.formation[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.formation[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.formation[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.formation[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.formation[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.formation[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.formation[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.formation[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.formation[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.formation[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.formation[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.formation[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.formation[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.formation[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.formation[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.formation[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.formation[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.formation[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.formation[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.formation[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.formation[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.formation[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.formation[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.formation[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.formation[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.structuralFeatures
Type: list of object; optional
Sourced structural features assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-2.fields.structuralFeatures[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.structuralFeatures[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.structuralFeatures[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.structuralFeatures[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.structuralFeatures[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.structuralFeatures[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-2.fields.structuralFeatures[].content/option-1.value[]
Type: string
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.structuralFeatures[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.structuralFeatures[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.structuralFeatures[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.structuralFeatures[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.structuralFeatures[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.structuralFeatures[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.structuralFeatures[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.structuralFeatures[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.structuralFeatures[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.structuralFeatures[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.structuralFeatures[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.structuralFeatures[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.structuralFeatures[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.structuralFeatures[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.structuralFeatures[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.structuralFeatures[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.structuralFeatures[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.structuralFeatures[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.structuralFeatures[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.structuralFeatures[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.structuralFeatures[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.structuralFeatures[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-2.fields.structuralFeatures[].content/option-2.value[]
Type: string
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.structuralFeatures[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.structuralFeatures[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.structuralFeatures[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.structuralFeatures[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.structuralFeatures[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.structuralFeatures[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.structuralFeatures[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.structuralFeatures[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.structuralFeatures[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.structuralFeatures[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.structuralFeatures[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.structuralFeatures[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.structuralFeatures[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.structuralFeatures[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.structuralFeatures[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.structuralFeatures[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.structuralFeatures[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.structuralFeatures[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.structuralFeatures[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.structuralFeatures[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.structuralFeatures[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.structuralFeatures[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.structuralFeatures[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.structuralFeatures[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.structuralFeatures[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.structuralFeatures[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.structuralFeatures[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.structuralFeatures[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.structuralFeatures[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.structuralFeatures[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.structuralFeatures[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.structuralFeatures[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.structuralFeatures[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.structuralFeatures[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.structuralFeatures[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.structuralFeatures[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.structuralFeatures[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.structuralFeatures[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.structuralFeatures[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.structuralFeatures[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.structuralFeatures[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.structuralFeatures[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.structuralFeatures[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.structuralFeatures[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.structuralFeatures[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.structuralFeatures[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.structuralFeatures[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.countDescription
Type: list of object; optional
Sourced count description assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-2.fields.countDescription[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.countDescription[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.countDescription[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.countDescription[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.countDescription[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.countDescription[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.countDescription[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.countDescription[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.countDescription[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.countDescription[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.countDescription[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.countDescription[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.countDescription[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.countDescription[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.countDescription[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.countDescription[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.countDescription[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.countDescription[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.countDescription[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.countDescription[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.countDescription[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.countDescription[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.countDescription[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.countDescription[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.countDescription[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.countDescription[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.countDescription[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.countDescription[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.countDescription[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.countDescription[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.countDescription[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.countDescription[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.countDescription[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.countDescription[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.countDescription[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.countDescription[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.countDescription[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.countDescription[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.countDescription[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.countDescription[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.countDescription[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.countDescription[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.countDescription[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.countDescription[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.countDescription[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.countDescription[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.countDescription[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.countDescription[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.countDescription[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.countDescription[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.countDescription[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.countDescription[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.countDescription[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.countDescription[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.countDescription[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.countDescription[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.countDescription[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.countDescription[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.countDescription[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.countDescription[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.countDescription[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.countDescription[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.countDescription[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.countDescription[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.countDescription[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.countDescription[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.countDescription[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.countDescription[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.countDescription[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.countDescription[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.countDescription[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.countDescription[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.countDescription[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.countDescription[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.countDescription[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speedDescription
Type: list of object; optional
Sourced speed description assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-2.fields.speedDescription[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speedDescription[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.speedDescription[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.speedDescription[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speedDescription[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.speedDescription[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speedDescription[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speedDescription[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.speedDescription[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speedDescription[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.speedDescription[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.speedDescription[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.speedDescription[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speedDescription[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.speedDescription[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.speedDescription[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speedDescription[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.speedDescription[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.speedDescription[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.speedDescription[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speedDescription[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.speedDescription[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.speedDescription[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speedDescription[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speedDescription[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speedDescription[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speedDescription[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.speedDescription[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speedDescription[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speedDescription[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speedDescription[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.speedDescription[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speedDescription[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.speedDescription[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.speedDescription[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.speedDescription[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speedDescription[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.speedDescription[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.speedDescription[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speedDescription[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.speedDescription[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.speedDescription[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.speedDescription[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speedDescription[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.speedDescription[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.speedDescription[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speedDescription[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speedDescription[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speedDescription[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speedDescription[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.speedDescription[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.speedDescription[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speedDescription[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.speedDescription[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speedDescription[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speedDescription[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.speedDescription[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speedDescription[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speedDescription[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.speedDescription[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speedDescription[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.speedDescription[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.speedDescription[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.speedDescription[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speedDescription[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.speedDescription[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.speedDescription[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speedDescription[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.speedDescription[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.speedDescription[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.speedDescription[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speedDescription[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.speedDescription[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.speedDescription[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speedDescription[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.altitudeDescription
Type: list of object; optional
Sourced altitude description assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-2.fields.altitudeDescription[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.altitudeDescription[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.altitudeDescription[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.altitudeDescription[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.altitudeDescription[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.altitudeDescription[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.altitudeDescription[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.altitudeDescription[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.altitudeDescription[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.altitudeDescription[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.altitudeDescription[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.altitudeDescription[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.altitudeDescription[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.altitudeDescription[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.altitudeDescription[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.altitudeDescription[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.altitudeDescription[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.altitudeDescription[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.altitudeDescription[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.altitudeDescription[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.altitudeDescription[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.altitudeDescription[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.altitudeDescription[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.altitudeDescription[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.altitudeDescription[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.altitudeDescription[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.altitudeDescription[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.altitudeDescription[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.altitudeDescription[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.altitudeDescription[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.altitudeDescription[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.altitudeDescription[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.altitudeDescription[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.altitudeDescription[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.altitudeDescription[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.altitudeDescription[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.altitudeDescription[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.altitudeDescription[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.altitudeDescription[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.altitudeDescription[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.altitudeDescription[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.altitudeDescription[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.altitudeDescription[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.altitudeDescription[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.altitudeDescription[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.altitudeDescription[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.altitudeDescription[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.altitudeDescription[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.altitudeDescription[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.altitudeDescription[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.altitudeDescription[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.altitudeDescription[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.altitudeDescription[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.altitudeDescription[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.altitudeDescription[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.altitudeDescription[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.altitudeDescription[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.altitudeDescription[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.altitudeDescription[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.altitudeDescription[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.altitudeDescription[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.altitudeDescription[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.altitudeDescription[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.altitudeDescription[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.altitudeDescription[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.altitudeDescription[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.altitudeDescription[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.altitudeDescription[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.altitudeDescription[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.altitudeDescription[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.altitudeDescription[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.altitudeDescription[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.altitudeDescription[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.altitudeDescription[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.altitudeDescription[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.flightPath
Type: list of object; optional
Sourced flight path assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-2.fields.flightPath[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.flightPath[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.flightPath[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.flightPath[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.flightPath[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.flightPath[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.flightPath[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.flightPath[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.flightPath[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.flightPath[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.flightPath[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.flightPath[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.flightPath[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.flightPath[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.flightPath[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.flightPath[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.flightPath[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.flightPath[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.flightPath[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.flightPath[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.flightPath[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.flightPath[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.flightPath[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.flightPath[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.flightPath[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.flightPath[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.flightPath[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.flightPath[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.flightPath[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.flightPath[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.flightPath[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.flightPath[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.flightPath[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.flightPath[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.flightPath[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.flightPath[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.flightPath[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.flightPath[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.flightPath[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.flightPath[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.flightPath[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.flightPath[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.flightPath[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.flightPath[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.flightPath[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.flightPath[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.flightPath[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.flightPath[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.flightPath[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.flightPath[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.flightPath[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.flightPath[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.flightPath[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.flightPath[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.flightPath[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.flightPath[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.flightPath[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.flightPath[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.flightPath[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.flightPath[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.flightPath[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.flightPath[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.flightPath[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.flightPath[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.flightPath[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.flightPath[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.flightPath[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.flightPath[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.flightPath[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.flightPath[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.flightPath[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.flightPath[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.flightPath[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.flightPath[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.flightPath[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.maneuvers
Type: list of object; optional
Sourced maneuvers assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-2.fields.maneuvers[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuvers[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.maneuvers[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.maneuvers[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuvers[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.maneuvers[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-2.fields.maneuvers[].content/option-1.value[]
Type: string
A distinctive movement/maneuver exhibited by the object.
enum: ["hover","instant_acceleration","instant_stop","right_angle_turn","zigzag","pendulum","split","merge","disappear","appear","transmedium_entry","transmedium_exit","vertical_ascent","vertical_descent","rotation","wobble","other"]
### entities[]/option-2.fields.maneuvers[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuvers[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.maneuvers[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuvers[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.maneuvers[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.maneuvers[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.maneuvers[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuvers[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.maneuvers[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.maneuvers[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuvers[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.maneuvers[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.maneuvers[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.maneuvers[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuvers[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.maneuvers[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.maneuvers[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.maneuvers[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.maneuvers[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.maneuvers[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuvers[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.maneuvers[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-2.fields.maneuvers[].content/option-2.value[]
Type: string
A distinctive movement/maneuver exhibited by the object.
enum: ["hover","instant_acceleration","instant_stop","right_angle_turn","zigzag","pendulum","split","merge","disappear","appear","transmedium_entry","transmedium_exit","vertical_ascent","vertical_descent","rotation","wobble","other"]
### entities[]/option-2.fields.maneuvers[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.maneuvers[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuvers[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.maneuvers[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuvers[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.maneuvers[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.maneuvers[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.maneuvers[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuvers[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.maneuvers[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.maneuvers[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuvers[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.maneuvers[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.maneuvers[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.maneuvers[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuvers[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.maneuvers[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.maneuvers[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.maneuvers[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.maneuvers[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.maneuvers[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuvers[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.maneuvers[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.maneuvers[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuvers[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.maneuvers[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.maneuvers[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuvers[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.maneuvers[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.maneuvers[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuvers[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.maneuvers[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuvers[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.maneuvers[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.maneuvers[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.maneuvers[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuvers[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.maneuvers[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.maneuvers[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuvers[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.maneuvers[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.maneuvers[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.maneuvers[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuvers[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.maneuvers[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.maneuvers[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.maneuvers[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.maneuverDescriptions
Type: list of object; optional
Sourced maneuver descriptions assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-2.fields.maneuverDescriptions[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuverDescriptions[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.maneuverDescriptions[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.maneuverDescriptions[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuverDescriptions[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-2.fields.maneuverDescriptions[].content/option-1.value[]
Type: string
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuverDescriptions[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuverDescriptions[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.maneuverDescriptions[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuverDescriptions[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.maneuverDescriptions[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuverDescriptions[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.maneuverDescriptions[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.maneuverDescriptions[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuverDescriptions[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuverDescriptions[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-2.fields.maneuverDescriptions[].content/option-2.value[]
Type: string
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuverDescriptions[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuverDescriptions[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.maneuverDescriptions[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuverDescriptions[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.maneuverDescriptions[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuverDescriptions[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.maneuverDescriptions[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.maneuverDescriptions[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuverDescriptions[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuverDescriptions[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.maneuverDescriptions[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuverDescriptions[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuverDescriptions[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuverDescriptions[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuverDescriptions[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.maneuverDescriptions[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuverDescriptions[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.maneuverDescriptions[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuverDescriptions[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.maneuverDescriptions[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.maneuverDescriptions[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.maneuverDescriptions[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.maneuverDescriptions[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.trajectoryDescription
Type: list of object; optional
Sourced trajectory description assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-2.fields.trajectoryDescription[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.trajectoryDescription[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.trajectoryDescription[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.trajectoryDescription[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.trajectoryDescription[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.trajectoryDescription[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.trajectoryDescription[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.trajectoryDescription[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.trajectoryDescription[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.trajectoryDescription[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.trajectoryDescription[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.trajectoryDescription[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.trajectoryDescription[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.trajectoryDescription[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.trajectoryDescription[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.trajectoryDescription[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.trajectoryDescription[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.trajectoryDescription[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.trajectoryDescription[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.trajectoryDescription[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.trajectoryDescription[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.trajectoryDescription[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.trajectoryDescription[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.trajectoryDescription[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.trajectoryDescription[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.trajectoryDescription[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.trajectoryDescription[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.trajectoryDescription[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.trajectoryDescription[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.trajectoryDescription[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.trajectoryDescription[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.trajectoryDescription[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.trajectoryDescription[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.trajectoryDescription[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.trajectoryDescription[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.trajectoryDescription[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.trajectoryDescription[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.trajectoryDescription[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.trajectoryDescription[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.trajectoryDescription[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.trajectoryDescription[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.trajectoryDescription[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.trajectoryDescription[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.trajectoryDescription[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.trajectoryDescription[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.trajectoryDescription[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.trajectoryDescription[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.trajectoryDescription[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.trajectoryDescription[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.trajectoryDescription[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.trajectoryDescription[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.trajectoryDescription[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.trajectoryDescription[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.trajectoryDescription[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.trajectoryDescription[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.trajectoryDescription[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.trajectoryDescription[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.trajectoryDescription[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.trajectoryDescription[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.trajectoryDescription[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.trajectoryDescription[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.trajectoryDescription[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.trajectoryDescription[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.trajectoryDescription[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.trajectoryDescription[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.trajectoryDescription[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.trajectoryDescription[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.trajectoryDescription[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.trajectoryDescription[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.trajectoryDescription[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.trajectoryDescription[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.trajectoryDescription[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.trajectoryDescription[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.trajectoryDescription[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.trajectoryDescription[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.radarContactReported
Type: list of object; optional
Sourced radar contact reported assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-2.fields.radarContactReported[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.radarContactReported[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.radarContactReported[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.radarContactReported[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.radarContactReported[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.radarContactReported[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-2.fields.radarContactReported[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.radarContactReported[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.radarContactReported[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.radarContactReported[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.radarContactReported[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.radarContactReported[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.radarContactReported[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.radarContactReported[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.radarContactReported[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.radarContactReported[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.radarContactReported[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.radarContactReported[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.radarContactReported[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.radarContactReported[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.radarContactReported[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.radarContactReported[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.radarContactReported[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.radarContactReported[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.radarContactReported[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.radarContactReported[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.radarContactReported[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.radarContactReported[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-2.fields.radarContactReported[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.radarContactReported[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.radarContactReported[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.radarContactReported[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.radarContactReported[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.radarContactReported[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.radarContactReported[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.radarContactReported[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.radarContactReported[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.radarContactReported[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.radarContactReported[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.radarContactReported[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.radarContactReported[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.radarContactReported[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.radarContactReported[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.radarContactReported[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.radarContactReported[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.radarContactReported[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.radarContactReported[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.radarContactReported[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.radarContactReported[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.radarContactReported[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.radarContactReported[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.radarContactReported[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.radarContactReported[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.radarContactReported[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.radarContactReported[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.radarContactReported[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.radarContactReported[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.radarContactReported[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.radarContactReported[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.radarContactReported[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.radarContactReported[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.radarContactReported[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.radarContactReported[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.radarContactReported[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.radarContactReported[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.radarContactReported[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.radarContactReported[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.radarContactReported[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.radarContactReported[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.radarContactReported[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.radarContactReported[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.radarContactReported[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.radarContactReported[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.radarContactReported[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.radarContactReported[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.infraredSignatureReported
Type: list of object; optional
Sourced infrared signature reported assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-2.fields.infraredSignatureReported[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.infraredSignatureReported[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.infraredSignatureReported[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.infraredSignatureReported[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.infraredSignatureReported[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-2.fields.infraredSignatureReported[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.infraredSignatureReported[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.infraredSignatureReported[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.infraredSignatureReported[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.infraredSignatureReported[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.infraredSignatureReported[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.infraredSignatureReported[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.infraredSignatureReported[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.infraredSignatureReported[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.infraredSignatureReported[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.infraredSignatureReported[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-2.fields.infraredSignatureReported[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.infraredSignatureReported[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.infraredSignatureReported[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.infraredSignatureReported[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.infraredSignatureReported[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.infraredSignatureReported[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.infraredSignatureReported[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.infraredSignatureReported[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.infraredSignatureReported[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.infraredSignatureReported[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.infraredSignatureReported[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.infraredSignatureReported[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.infraredSignatureReported[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.infraredSignatureReported[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.infraredSignatureReported[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.infraredSignatureReported[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.infraredSignatureReported[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.infraredSignatureReported[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.infraredSignatureReported[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.infraredSignatureReported[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.infraredSignatureReported[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.infraredSignatureReported[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.infraredSignatureReported[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.infraredSignatureReported[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.measurements
Type: list of object; optional
### entities[]/option-2.measurements[]
Type: object
Association to an Observation measurement. No copied numeric value.
Extra fields: Not allowed in this object
### entities[]/option-2.measurements[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.measurements[].role
Type: string; required in containing object
enum: ["size","count","speed","altitude","heading","ambient_temperature","relative_humidity","wind_speed","moon_illumination","duration","distance","bearing","water_depth","coordinate_precision","time_alignment"]
### entities[]/option-2.measurements[].measurementId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.measurements[].relatedPlaceId
Type: string; optional
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.selections
Type: list of object; optional
### entities[]/option-2.selections[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.selections[].field
Type: string; required in containing object
enum: ["shape","sizeDescription","color","secondaryColors","luminosity","sound","soundDescription","surfaceDetails","formation","structuralFeatures","countDescription","speedDescription","altitudeDescription","flightPath","maneuvers","maneuverDescriptions","trajectoryDescription","radarContactReported","infraredSignatureReported"]
### entities[]/option-2.selections[].assertionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.selections[].consideredAssertionIds
Type: list of string; required in containing object
minItems: 1
### entities[]/option-2.selections[].consideredAssertionIds[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.selections[].evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.selections[].evaluatedAt
Type: string; required in containing object
### entities[]/option-2.selections[].evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-2.selections[].evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.selections[].evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-2.selections[].evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-2.selections[].methodRef
Type: string; required in containing object
pattern: "^method:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.selections[].methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.selections[].rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.kind
Type: string; required in containing object
const: "place"
### entities[]/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.name
Type: list of object; optional
Sourced name assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-3.fields.name[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.name[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.name[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.name[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.name[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.name[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.name[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.name[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.name[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.name[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.name[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.name[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.name[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.name[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.name[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.name[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.name[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.name[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.name[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.name[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.name[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.name[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.name[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.name[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.name[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.name[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.name[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.name[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.name[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.name[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.name[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.name[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.name[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.name[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.name[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.name[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.name[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.name[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.name[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.name[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.name[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.name[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.name[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.name[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.name[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.name[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.name[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.name[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.name[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.name[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.name[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.name[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.name[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.name[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.name[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.name[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.name[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.name[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.name[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.name[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.name[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.name[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.name[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.name[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.name[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.name[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.name[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.name[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.name[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.name[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.name[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.name[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.name[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.name[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.name[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.country
Type: list of object; optional
Sourced country assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-3.fields.country[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.country[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.country[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.country[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.country[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.country[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.country[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.country[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.country[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.country[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.country[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.country[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.country[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.country[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.country[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.country[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.country[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.country[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.country[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.country[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.country[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.country[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.country[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.country[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.country[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.country[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.country[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.country[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.country[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.country[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.country[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.country[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.country[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.country[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.country[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.country[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.country[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.country[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.country[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.country[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.country[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.country[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.country[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.country[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.country[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.country[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.country[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.country[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.country[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.country[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.country[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.country[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.country[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.country[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.country[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.country[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.country[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.country[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.country[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.country[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.country[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.country[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.country[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.country[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.country[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.country[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.country[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.country[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.country[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.country[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.country[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.country[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.country[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.country[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.country[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.countryCode
Type: list of object; optional
Sourced country code assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-3.fields.countryCode[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.countryCode[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.countryCode[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.countryCode[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.countryCode[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.countryCode[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.countryCode[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.countryCode[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.countryCode[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.countryCode[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.countryCode[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.countryCode[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.countryCode[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.countryCode[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.countryCode[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.countryCode[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.countryCode[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.countryCode[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.countryCode[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.countryCode[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.countryCode[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.countryCode[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.countryCode[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.countryCode[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.countryCode[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.countryCode[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.countryCode[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.countryCode[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.countryCode[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.countryCode[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.countryCode[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.countryCode[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.countryCode[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.countryCode[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.countryCode[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.countryCode[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.countryCode[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.countryCode[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.countryCode[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.countryCode[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.countryCode[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.countryCode[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.countryCode[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.countryCode[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.countryCode[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.countryCode[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.countryCode[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.countryCode[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.countryCode[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.countryCode[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.countryCode[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.countryCode[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.countryCode[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.countryCode[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.countryCode[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.countryCode[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.countryCode[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.countryCode[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.countryCode[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.countryCode[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.countryCode[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.countryCode[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.countryCode[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.countryCode[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.countryCode[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.countryCode[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.countryCode[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.countryCode[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.countryCode[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.countryCode[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.countryCode[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.countryCode[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.countryCode[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.countryCode[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.countryCode[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.region
Type: list of object; optional
Sourced region assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-3.fields.region[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.region[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.region[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.region[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.region[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.region[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.region[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.region[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.region[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.region[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.region[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.region[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.region[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.region[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.region[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.region[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.region[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.region[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.region[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.region[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.region[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.region[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.region[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.region[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.region[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.region[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.region[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.region[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.region[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.region[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.region[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.region[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.region[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.region[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.region[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.region[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.region[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.region[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.region[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.region[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.region[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.region[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.region[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.region[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.region[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.region[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.region[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.region[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.region[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.region[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.region[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.region[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.region[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.region[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.region[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.region[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.region[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.region[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.region[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.region[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.region[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.region[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.region[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.region[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.region[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.region[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.region[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.region[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.region[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.region[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.region[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.region[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.region[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.region[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.region[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.city
Type: list of object; optional
Sourced city assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-3.fields.city[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.city[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.city[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.city[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.city[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.city[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.city[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.city[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.city[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.city[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.city[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.city[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.city[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.city[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.city[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.city[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.city[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.city[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.city[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.city[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.city[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.city[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.city[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.city[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.city[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.city[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.city[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.city[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.city[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.city[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.city[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.city[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.city[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.city[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.city[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.city[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.city[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.city[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.city[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.city[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.city[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.city[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.city[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.city[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.city[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.city[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.city[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.city[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.city[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.city[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.city[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.city[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.city[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.city[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.city[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.city[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.city[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.city[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.city[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.city[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.city[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.city[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.city[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.city[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.city[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.city[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.city[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.city[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.city[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.city[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.city[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.city[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.city[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.city[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.city[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.address
Type: list of object; optional
Sourced address assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-3.fields.address[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.address[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.address[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.address[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.address[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.address[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.address[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.address[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.address[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.address[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.address[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.address[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.address[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.address[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.address[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.address[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.address[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.address[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.address[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.address[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.address[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.address[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.address[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.address[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.address[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.address[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.address[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.address[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.address[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.address[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.address[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.address[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.address[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.address[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.address[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.address[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.address[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.address[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.address[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.address[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.address[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.address[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.address[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.address[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.address[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.address[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.address[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.address[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.address[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.address[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.address[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.address[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.address[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.address[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.address[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.address[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.address[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.address[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.address[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.address[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.address[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.address[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.address[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.address[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.address[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.address[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.address[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.address[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.address[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.address[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.address[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.address[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.address[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.address[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.address[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position
Type: list of object; optional
Sourced position assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-3.fields.position[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.position[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.position[].content/option-1.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.position[].content/option-1.value/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-1.latitude
Type: number; required in containing object
minimum: -90
maximum: 90
### entities[]/option-3.fields.position[].content/option-1.value/option-1.longitude
Type: number; required in containing object
minimum: -180
maximum: 180
### entities[]/option-3.fields.position[].content/option-1.value/option-1.kind
Type: string; required in containing object
const: "geodetic"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.altitude
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-1.altitude.value
Type: number; required in containing object
### entities[]/option-3.fields.position[].content/option-1.value/option-1.altitude.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.altitude.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.position[].content/option-1.value/option-1.altitude.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-1.altitude.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.altitude.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### entities[]/option-3.fields.position[].content/option-1.value/option-1.altitude.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-1.altitude.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.altitude.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-1.value/option-1.altitude.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.altitude.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-1.value/option-1.altitude.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.altitude.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-1.altitude.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.altitude.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-1.value/option-1.altitude.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.altitude.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-1.value/option-1.altitude.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.altitude.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### entities[]/option-3.fields.position[].content/option-1.value/option-1.altitude.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### entities[]/option-3.fields.position[].content/option-1.value/option-1.altitude.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-1.altitude.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.altitude.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-1.value/option-1.altitude.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.altitude.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-1.value/option-1.altitude.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.latitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.latitude/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.latitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.latitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.latitude/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.latitude/option-2.kind
Type: string; required in containing object
const: "standard"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.latitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.latitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.latitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.latitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.latitude/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.latitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.latitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.latitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.latitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.latitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.latitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.latitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.latitude/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.latitude/option-4.kind
Type: string; required in containing object
const: "bound"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.latitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.latitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.latitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.latitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.longitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.longitude/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.longitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.longitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.longitude/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.longitude/option-2.kind
Type: string; required in containing object
const: "standard"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.longitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.longitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.longitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.longitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.longitude/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.longitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.longitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.longitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.longitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.longitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.longitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.longitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.longitude/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.longitude/option-4.kind
Type: string; required in containing object
const: "bound"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.longitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.longitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.longitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-1.value/option-1.uncertainty.longitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "cartesian"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.x
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-2.x.value
Type: number; required in containing object
### entities[]/option-3.fields.position[].content/option-1.value/option-2.x.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.x.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.position[].content/option-1.value/option-2.x.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-2.x.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.x.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### entities[]/option-3.fields.position[].content/option-1.value/option-2.x.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-2.x.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.x.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-1.value/option-2.x.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.x.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-1.value/option-2.x.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.x.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-2.x.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.x.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-1.value/option-2.x.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.x.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-1.value/option-2.x.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.x.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### entities[]/option-3.fields.position[].content/option-1.value/option-2.x.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### entities[]/option-3.fields.position[].content/option-1.value/option-2.x.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-2.x.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.x.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-1.value/option-2.x.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.x.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-1.value/option-2.x.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.y
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-2.y.value
Type: number; required in containing object
### entities[]/option-3.fields.position[].content/option-1.value/option-2.y.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.y.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.position[].content/option-1.value/option-2.y.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-2.y.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.y.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### entities[]/option-3.fields.position[].content/option-1.value/option-2.y.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-2.y.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.y.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-1.value/option-2.y.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.y.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-1.value/option-2.y.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.y.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-2.y.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.y.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-1.value/option-2.y.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.y.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-1.value/option-2.y.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.y.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### entities[]/option-3.fields.position[].content/option-1.value/option-2.y.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### entities[]/option-3.fields.position[].content/option-1.value/option-2.y.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-2.y.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.y.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-1.value/option-2.y.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.y.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-1.value/option-2.y.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.z
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-2.z.value
Type: number; required in containing object
### entities[]/option-3.fields.position[].content/option-1.value/option-2.z.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.z.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.position[].content/option-1.value/option-2.z.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-2.z.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.z.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### entities[]/option-3.fields.position[].content/option-1.value/option-2.z.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-2.z.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.z.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-1.value/option-2.z.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.z.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-1.value/option-2.z.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.z.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-2.z.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.z.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-1.value/option-2.z.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.z.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-1.value/option-2.z.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.z.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### entities[]/option-3.fields.position[].content/option-1.value/option-2.z.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### entities[]/option-3.fields.position[].content/option-1.value/option-2.z.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.value/option-2.z.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.z.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-1.value/option-2.z.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-1.value/option-2.z.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-1.value/option-2.z.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.position[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.position[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.position[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.position[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.position[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.position[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.position[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.position[].content/option-2.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.position[].content/option-2.value/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-1.latitude
Type: number; required in containing object
minimum: -90
maximum: 90
### entities[]/option-3.fields.position[].content/option-2.value/option-1.longitude
Type: number; required in containing object
minimum: -180
maximum: 180
### entities[]/option-3.fields.position[].content/option-2.value/option-1.kind
Type: string; required in containing object
const: "geodetic"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.altitude
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-1.altitude.value
Type: number; required in containing object
### entities[]/option-3.fields.position[].content/option-2.value/option-1.altitude.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.altitude.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.position[].content/option-2.value/option-1.altitude.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-1.altitude.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.altitude.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### entities[]/option-3.fields.position[].content/option-2.value/option-1.altitude.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-1.altitude.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.altitude.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-2.value/option-1.altitude.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.altitude.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-2.value/option-1.altitude.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.altitude.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-1.altitude.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.altitude.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-2.value/option-1.altitude.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.altitude.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-2.value/option-1.altitude.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.altitude.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### entities[]/option-3.fields.position[].content/option-2.value/option-1.altitude.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### entities[]/option-3.fields.position[].content/option-2.value/option-1.altitude.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-1.altitude.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.altitude.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-2.value/option-1.altitude.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.altitude.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-2.value/option-1.altitude.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.latitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.latitude/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.latitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.latitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.latitude/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.latitude/option-2.kind
Type: string; required in containing object
const: "standard"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.latitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.latitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.latitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.latitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.latitude/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.latitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.latitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.latitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.latitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.latitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.latitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.latitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.latitude/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.latitude/option-4.kind
Type: string; required in containing object
const: "bound"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.latitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.latitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.latitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.latitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.longitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.longitude/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.longitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.longitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.longitude/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.longitude/option-2.kind
Type: string; required in containing object
const: "standard"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.longitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.longitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.longitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.longitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.longitude/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.longitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.longitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.longitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.longitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.longitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.longitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.longitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.longitude/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.longitude/option-4.kind
Type: string; required in containing object
const: "bound"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.longitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.longitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.longitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-2.value/option-1.uncertainty.longitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "cartesian"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.x
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-2.x.value
Type: number; required in containing object
### entities[]/option-3.fields.position[].content/option-2.value/option-2.x.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.x.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.position[].content/option-2.value/option-2.x.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-2.x.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.x.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### entities[]/option-3.fields.position[].content/option-2.value/option-2.x.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-2.x.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.x.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-2.value/option-2.x.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.x.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-2.value/option-2.x.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.x.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-2.x.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.x.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-2.value/option-2.x.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.x.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-2.value/option-2.x.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.x.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### entities[]/option-3.fields.position[].content/option-2.value/option-2.x.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### entities[]/option-3.fields.position[].content/option-2.value/option-2.x.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-2.x.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.x.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-2.value/option-2.x.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.x.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-2.value/option-2.x.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.y
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-2.y.value
Type: number; required in containing object
### entities[]/option-3.fields.position[].content/option-2.value/option-2.y.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.y.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.position[].content/option-2.value/option-2.y.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-2.y.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.y.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### entities[]/option-3.fields.position[].content/option-2.value/option-2.y.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-2.y.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.y.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-2.value/option-2.y.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.y.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-2.value/option-2.y.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.y.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-2.y.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.y.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-2.value/option-2.y.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.y.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-2.value/option-2.y.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.y.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### entities[]/option-3.fields.position[].content/option-2.value/option-2.y.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### entities[]/option-3.fields.position[].content/option-2.value/option-2.y.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-2.y.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.y.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-2.value/option-2.y.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.y.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-2.value/option-2.y.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.z
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-2.z.value
Type: number; required in containing object
### entities[]/option-3.fields.position[].content/option-2.value/option-2.z.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.z.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.position[].content/option-2.value/option-2.z.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-2.z.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.z.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### entities[]/option-3.fields.position[].content/option-2.value/option-2.z.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-2.z.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.z.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-2.value/option-2.z.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.z.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-2.value/option-2.z.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.z.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-2.z.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.z.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-2.value/option-2.z.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.z.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-2.value/option-2.z.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.z.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### entities[]/option-3.fields.position[].content/option-2.value/option-2.z.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### entities[]/option-3.fields.position[].content/option-2.value/option-2.z.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.value/option-2.z.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.z.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-2.value/option-2.z.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-2.value/option-2.z.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.position[].content/option-2.value/option-2.z.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.position[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.position[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.position[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.position[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.position[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.position[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.position[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.position[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.position[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.position[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.position[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.position[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.position[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.position[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.position[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.position[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.position[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.position[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.position[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.position[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.position[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.position[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.coordinatePrecision
Type: list of object; optional
Sourced coordinate precision assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-3.fields.coordinatePrecision[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatePrecision[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.coordinatePrecision[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.coordinatePrecision[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatePrecision[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.coordinatePrecision[].content/option-1.value
Type: string; required in containing object
How precisely a coordinate is known.
enum: ["exact","address","locality","region","approximate","unknown"]
### entities[]/option-3.fields.coordinatePrecision[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatePrecision[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.coordinatePrecision[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatePrecision[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.coordinatePrecision[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.coordinatePrecision[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.coordinatePrecision[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatePrecision[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.coordinatePrecision[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.coordinatePrecision[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatePrecision[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.coordinatePrecision[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.coordinatePrecision[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.coordinatePrecision[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatePrecision[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.coordinatePrecision[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.coordinatePrecision[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.coordinatePrecision[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.coordinatePrecision[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.coordinatePrecision[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatePrecision[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.coordinatePrecision[].content/option-2.value
Type: string; required in containing object
How precisely a coordinate is known.
enum: ["exact","address","locality","region","approximate","unknown"]
### entities[]/option-3.fields.coordinatePrecision[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.coordinatePrecision[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatePrecision[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.coordinatePrecision[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatePrecision[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.coordinatePrecision[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.coordinatePrecision[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.coordinatePrecision[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatePrecision[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.coordinatePrecision[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.coordinatePrecision[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatePrecision[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.coordinatePrecision[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.coordinatePrecision[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.coordinatePrecision[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatePrecision[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.coordinatePrecision[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.coordinatePrecision[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.coordinatePrecision[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.coordinatePrecision[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.coordinatePrecision[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatePrecision[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.coordinatePrecision[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.coordinatePrecision[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatePrecision[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.coordinatePrecision[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.coordinatePrecision[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatePrecision[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.coordinatePrecision[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.coordinatePrecision[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatePrecision[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.coordinatePrecision[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatePrecision[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.coordinatePrecision[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.coordinatePrecision[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.coordinatePrecision[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatePrecision[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.coordinatePrecision[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.coordinatePrecision[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatePrecision[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.coordinatePrecision[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.coordinatePrecision[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.coordinatePrecision[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatePrecision[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.coordinatePrecision[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.coordinatePrecision[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.coordinatePrecision[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.coordinatesApproximate
Type: list of object; optional
Sourced coordinates approximate assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-3.fields.coordinatesApproximate[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatesApproximate[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.coordinatesApproximate[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.coordinatesApproximate[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatesApproximate[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-3.fields.coordinatesApproximate[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatesApproximate[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatesApproximate[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.coordinatesApproximate[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatesApproximate[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.coordinatesApproximate[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatesApproximate[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.coordinatesApproximate[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.coordinatesApproximate[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatesApproximate[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatesApproximate[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-3.fields.coordinatesApproximate[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatesApproximate[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatesApproximate[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.coordinatesApproximate[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatesApproximate[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.coordinatesApproximate[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatesApproximate[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.coordinatesApproximate[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.coordinatesApproximate[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatesApproximate[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatesApproximate[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.coordinatesApproximate[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatesApproximate[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatesApproximate[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatesApproximate[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatesApproximate[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.coordinatesApproximate[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatesApproximate[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.coordinatesApproximate[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatesApproximate[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.coordinatesApproximate[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.coordinatesApproximate[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.coordinatesApproximate[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.coordinatesApproximate[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.elevationSource
Type: list of object; optional
Sourced elevation source assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-3.fields.elevationSource[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.elevationSource[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.elevationSource[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.elevationSource[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.elevationSource[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.elevationSource[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.elevationSource[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.elevationSource[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.elevationSource[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.elevationSource[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.elevationSource[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.elevationSource[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.elevationSource[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.elevationSource[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.elevationSource[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.elevationSource[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.elevationSource[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.elevationSource[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.elevationSource[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.elevationSource[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.elevationSource[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.elevationSource[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.elevationSource[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.elevationSource[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.elevationSource[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.elevationSource[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.elevationSource[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.elevationSource[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.elevationSource[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.elevationSource[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.elevationSource[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.elevationSource[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.elevationSource[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.elevationSource[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.elevationSource[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.elevationSource[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.elevationSource[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.elevationSource[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.elevationSource[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.elevationSource[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.elevationSource[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.elevationSource[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.elevationSource[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.elevationSource[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.elevationSource[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.elevationSource[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.elevationSource[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.elevationSource[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.elevationSource[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.elevationSource[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.elevationSource[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.elevationSource[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.elevationSource[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.elevationSource[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.elevationSource[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.elevationSource[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.elevationSource[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.elevationSource[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.elevationSource[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.elevationSource[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.elevationSource[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.elevationSource[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.elevationSource[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.elevationSource[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.elevationSource[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.elevationSource[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.elevationSource[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.elevationSource[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.elevationSource[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.elevationSource[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.elevationSource[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.elevationSource[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.elevationSource[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.elevationSource[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.elevationSource[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.siteType
Type: list of object; optional
Sourced site type assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-3.fields.siteType[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.siteType[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.siteType[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.siteType[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.siteType[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.siteType[].content/option-1.value
Type: string; required in containing object
Category of site at or near the observation location (military, nuclear, civilian, natural, etc.).
enum: ["military_air_base","military_naval_base","military_army_base","military_missile_site","military_radar_station","military_research_facility","military_training_area","military_other","nuclear_power_plant","nuclear_weapons_storage","nuclear_research_facility","nuclear_waste_storage","nuclear_other","civilian_airport","private_airfield","heliport","seaport","offshore_platform","naval_vessel","government_facility","embassy","intelligence_facility","power_plant","dam","telecommunications","water_treatment","research_facility","test_range","space_station","archaeological_site","volcano","command_center","residential","commercial","industrial","agricultural","wilderness","ocean","lake","mountain","desert","forest","urban","suburban","rural","other","unknown"]
### entities[]/option-3.fields.siteType[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.siteType[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.siteType[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.siteType[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.siteType[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.siteType[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.siteType[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.siteType[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.siteType[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.siteType[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.siteType[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.siteType[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.siteType[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.siteType[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.siteType[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.siteType[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.siteType[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.siteType[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.siteType[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.siteType[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.siteType[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.siteType[].content/option-2.value
Type: string; required in containing object
Category of site at or near the observation location (military, nuclear, civilian, natural, etc.).
enum: ["military_air_base","military_naval_base","military_army_base","military_missile_site","military_radar_station","military_research_facility","military_training_area","military_other","nuclear_power_plant","nuclear_weapons_storage","nuclear_research_facility","nuclear_waste_storage","nuclear_other","civilian_airport","private_airfield","heliport","seaport","offshore_platform","naval_vessel","government_facility","embassy","intelligence_facility","power_plant","dam","telecommunications","water_treatment","research_facility","test_range","space_station","archaeological_site","volcano","command_center","residential","commercial","industrial","agricultural","wilderness","ocean","lake","mountain","desert","forest","urban","suburban","rural","other","unknown"]
### entities[]/option-3.fields.siteType[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.siteType[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.siteType[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.siteType[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.siteType[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.siteType[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.siteType[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.siteType[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.siteType[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.siteType[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.siteType[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.siteType[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.siteType[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.siteType[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.siteType[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.siteType[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.siteType[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.siteType[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.siteType[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.siteType[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.siteType[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.siteType[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.siteType[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.siteType[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.siteType[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.siteType[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.siteType[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.siteType[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.siteType[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.siteType[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.siteType[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.siteType[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.siteType[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.siteType[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.siteType[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.siteType[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.siteType[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.siteType[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.siteType[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.siteType[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.siteType[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.siteType[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.siteType[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.siteType[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.siteType[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.siteType[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.siteType[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.secondarySiteTypes
Type: list of object; optional
Sourced secondary site types assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-3.fields.secondarySiteTypes[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.secondarySiteTypes[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.secondarySiteTypes[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.secondarySiteTypes[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.secondarySiteTypes[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.secondarySiteTypes[].content/option-1.value[]
Type: string
Category of site at or near the observation location (military, nuclear, civilian, natural, etc.).
enum: ["military_air_base","military_naval_base","military_army_base","military_missile_site","military_radar_station","military_research_facility","military_training_area","military_other","nuclear_power_plant","nuclear_weapons_storage","nuclear_research_facility","nuclear_waste_storage","nuclear_other","civilian_airport","private_airfield","heliport","seaport","offshore_platform","naval_vessel","government_facility","embassy","intelligence_facility","power_plant","dam","telecommunications","water_treatment","research_facility","test_range","space_station","archaeological_site","volcano","command_center","residential","commercial","industrial","agricultural","wilderness","ocean","lake","mountain","desert","forest","urban","suburban","rural","other","unknown"]
### entities[]/option-3.fields.secondarySiteTypes[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.secondarySiteTypes[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.secondarySiteTypes[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.secondarySiteTypes[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.secondarySiteTypes[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.secondarySiteTypes[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.secondarySiteTypes[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.secondarySiteTypes[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.secondarySiteTypes[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.secondarySiteTypes[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.secondarySiteTypes[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.secondarySiteTypes[].content/option-2.value[]
Type: string
Category of site at or near the observation location (military, nuclear, civilian, natural, etc.).
enum: ["military_air_base","military_naval_base","military_army_base","military_missile_site","military_radar_station","military_research_facility","military_training_area","military_other","nuclear_power_plant","nuclear_weapons_storage","nuclear_research_facility","nuclear_waste_storage","nuclear_other","civilian_airport","private_airfield","heliport","seaport","offshore_platform","naval_vessel","government_facility","embassy","intelligence_facility","power_plant","dam","telecommunications","water_treatment","research_facility","test_range","space_station","archaeological_site","volcano","command_center","residential","commercial","industrial","agricultural","wilderness","ocean","lake","mountain","desert","forest","urban","suburban","rural","other","unknown"]
### entities[]/option-3.fields.secondarySiteTypes[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.secondarySiteTypes[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.secondarySiteTypes[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.secondarySiteTypes[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.secondarySiteTypes[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.secondarySiteTypes[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.secondarySiteTypes[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.secondarySiteTypes[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.secondarySiteTypes[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.secondarySiteTypes[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.secondarySiteTypes[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.secondarySiteTypes[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.secondarySiteTypes[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.secondarySiteTypes[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.secondarySiteTypes[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.secondarySiteTypes[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.secondarySiteTypes[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.secondarySiteTypes[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.secondarySiteTypes[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.secondarySiteTypes[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.secondarySiteTypes[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.secondarySiteTypes[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.secondarySiteTypes[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.secondarySiteTypes[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.terrain
Type: list of object; optional
Sourced terrain assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-3.fields.terrain[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.terrain[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.terrain[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.terrain[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.terrain[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.terrain[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.terrain[].content/option-1.value[]
Type: string
Physical terrain at the observation location.
enum: ["ocean","coastal","lake","river","wetland","plains","hills","mountains","desert","forest","jungle","tundra","arctic","urban","suburban","rural","underground","underwater","airborne","space","unknown"]
### entities[]/option-3.fields.terrain[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.terrain[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.terrain[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.terrain[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.terrain[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.terrain[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.terrain[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.terrain[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.terrain[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.terrain[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.terrain[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.terrain[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.terrain[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.terrain[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.terrain[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.terrain[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.terrain[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.terrain[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.terrain[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.terrain[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.terrain[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.terrain[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.fields.terrain[].content/option-2.value[]
Type: string
Physical terrain at the observation location.
enum: ["ocean","coastal","lake","river","wetland","plains","hills","mountains","desert","forest","jungle","tundra","arctic","urban","suburban","rural","underground","underwater","airborne","space","unknown"]
### entities[]/option-3.fields.terrain[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.terrain[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.terrain[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.terrain[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.terrain[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.terrain[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.terrain[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.terrain[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.terrain[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.terrain[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.terrain[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.terrain[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.terrain[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.terrain[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.terrain[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.terrain[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.terrain[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.terrain[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.terrain[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.terrain[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.terrain[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.terrain[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.terrain[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.terrain[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.terrain[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.terrain[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.terrain[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.terrain[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.terrain[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.terrain[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.terrain[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.terrain[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.terrain[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.terrain[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.terrain[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.terrain[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.terrain[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.terrain[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.terrain[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.terrain[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.terrain[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.terrain[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.terrain[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.terrain[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.terrain[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.terrain[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.terrain[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.airspaceClass
Type: list of object; optional
Sourced airspace class assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-3.fields.airspaceClass[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.airspaceClass[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.airspaceClass[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.airspaceClass[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.airspaceClass[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.airspaceClass[].content/option-1.value
Type: string; required in containing object
Airspace classification over the location (ICAO classes plus special-use airspace).
enum: ["A","B","C","D","E","G","restricted","prohibited","warning","moa","alert","cfa","national_security","tfr","international","unknown"]
### entities[]/option-3.fields.airspaceClass[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.airspaceClass[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.airspaceClass[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.airspaceClass[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.airspaceClass[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.airspaceClass[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.airspaceClass[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.airspaceClass[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.airspaceClass[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.airspaceClass[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.airspaceClass[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.airspaceClass[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.airspaceClass[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.airspaceClass[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.airspaceClass[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.airspaceClass[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.airspaceClass[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.airspaceClass[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.airspaceClass[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.airspaceClass[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.airspaceClass[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.airspaceClass[].content/option-2.value
Type: string; required in containing object
Airspace classification over the location (ICAO classes plus special-use airspace).
enum: ["A","B","C","D","E","G","restricted","prohibited","warning","moa","alert","cfa","national_security","tfr","international","unknown"]
### entities[]/option-3.fields.airspaceClass[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.airspaceClass[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.airspaceClass[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.airspaceClass[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.airspaceClass[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.airspaceClass[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.airspaceClass[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.airspaceClass[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.airspaceClass[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.airspaceClass[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.airspaceClass[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.airspaceClass[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.airspaceClass[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.airspaceClass[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.airspaceClass[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.airspaceClass[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.airspaceClass[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.airspaceClass[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.airspaceClass[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.airspaceClass[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.airspaceClass[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.airspaceClass[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.airspaceClass[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.airspaceClass[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.airspaceClass[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.airspaceClass[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.airspaceClass[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.airspaceClass[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.airspaceClass[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.airspaceClass[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.airspaceClass[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.airspaceClass[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.airspaceClass[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.airspaceClass[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.airspaceClass[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.airspaceClass[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.airspaceClass[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.airspaceClass[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.airspaceClass[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.airspaceClass[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.airspaceClass[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.airspaceClass[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.airspaceClass[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.airspaceClass[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.airspaceClass[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.airspaceClass[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.airspaceClass[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.proximity
Type: list of object; optional
Sourced proximity assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-3.fields.proximity[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.proximity[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.proximity[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.proximity[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.proximity[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.proximity[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.proximity[].content/option-1.value.targetPlaceId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.proximity[].content/option-1.value.relation
Type: string; required in containing object
enum: ["nearby","nearest_military","nearest_nuclear","nearest_airport"]
### entities[]/option-3.fields.proximity[].content/option-1.value.distanceMeasurementId
Type: string; optional
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.proximity[].content/option-1.value.bearingMeasurementId
Type: string; optional
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.proximity[].content/option-1.value.note
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.proximity[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.proximity[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.proximity[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.proximity[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.proximity[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.proximity[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.proximity[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.proximity[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.proximity[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.proximity[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.proximity[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.proximity[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.proximity[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.proximity[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.proximity[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.proximity[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.proximity[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.proximity[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.proximity[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.proximity[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.proximity[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.proximity[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.proximity[].content/option-2.value.targetPlaceId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.proximity[].content/option-2.value.relation
Type: string; required in containing object
enum: ["nearby","nearest_military","nearest_nuclear","nearest_airport"]
### entities[]/option-3.fields.proximity[].content/option-2.value.distanceMeasurementId
Type: string; optional
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.proximity[].content/option-2.value.bearingMeasurementId
Type: string; optional
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.proximity[].content/option-2.value.note
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.proximity[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.proximity[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.proximity[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.proximity[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.proximity[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.proximity[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.proximity[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.proximity[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.proximity[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.proximity[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.proximity[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.proximity[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.proximity[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.proximity[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.proximity[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.proximity[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.proximity[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.proximity[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.proximity[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.proximity[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.proximity[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.proximity[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.proximity[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.proximity[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.proximity[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.proximity[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.proximity[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.proximity[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.proximity[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.proximity[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.proximity[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.proximity[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.proximity[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.proximity[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.proximity[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.proximity[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.proximity[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.proximity[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.proximity[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.proximity[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.proximity[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.proximity[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.proximity[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.proximity[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.proximity[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.proximity[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.proximity[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.infrastructureSensitivity
Type: list of object; optional
Sourced infrastructure sensitivity assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-3.fields.infrastructureSensitivity[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.infrastructureSensitivity[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.infrastructureSensitivity[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-1.value
Type: string; required in containing object
How sensitive the location is (e.g. proximity to critical infrastructure).
enum: ["critical","high","moderate","standard","none"]
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-2.value
Type: string; required in containing object
How sensitive the location is (e.g. proximity to critical infrastructure).
enum: ["critical","high","moderate","standard","none"]
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.infrastructureSensitivity[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sensitivity
Type: list of object; optional
Sourced sensitivity assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-3.fields.sensitivity[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sensitivity[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.sensitivity[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.sensitivity[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sensitivity[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.sensitivity[].content/option-1.value
Type: string; required in containing object
Publication instruction only; does not enforce access control.
enum: ["public","approximate_only","withheld"]
### entities[]/option-3.fields.sensitivity[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sensitivity[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.sensitivity[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sensitivity[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.sensitivity[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.sensitivity[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.sensitivity[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sensitivity[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.sensitivity[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.sensitivity[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sensitivity[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.sensitivity[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.sensitivity[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.sensitivity[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sensitivity[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.sensitivity[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.sensitivity[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sensitivity[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sensitivity[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sensitivity[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sensitivity[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.sensitivity[].content/option-2.value
Type: string; required in containing object
Publication instruction only; does not enforce access control.
enum: ["public","approximate_only","withheld"]
### entities[]/option-3.fields.sensitivity[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sensitivity[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sensitivity[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.sensitivity[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sensitivity[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.sensitivity[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.sensitivity[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.sensitivity[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sensitivity[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.sensitivity[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.sensitivity[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sensitivity[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.sensitivity[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.sensitivity[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.sensitivity[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sensitivity[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.sensitivity[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.sensitivity[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sensitivity[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sensitivity[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sensitivity[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sensitivity[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.sensitivity[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.sensitivity[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sensitivity[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.sensitivity[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sensitivity[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sensitivity[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.sensitivity[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sensitivity[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sensitivity[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.sensitivity[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sensitivity[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.sensitivity[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.sensitivity[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.sensitivity[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sensitivity[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.sensitivity[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.sensitivity[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sensitivity[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.sensitivity[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.sensitivity[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.sensitivity[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sensitivity[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.sensitivity[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.sensitivity[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sensitivity[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.measurements
Type: list of object; optional
### entities[]/option-3.measurements[]
Type: object
Association to an Observation measurement. No copied numeric value.
Extra fields: Not allowed in this object
### entities[]/option-3.measurements[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.measurements[].role
Type: string; required in containing object
enum: ["size","count","speed","altitude","heading","ambient_temperature","relative_humidity","wind_speed","moon_illumination","duration","distance","bearing","water_depth","coordinate_precision","time_alignment"]
### entities[]/option-3.measurements[].measurementId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.measurements[].relatedPlaceId
Type: string; optional
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.selections
Type: list of object; optional
### entities[]/option-3.selections[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.selections[].field
Type: string; required in containing object
enum: ["name","country","countryCode","region","city","address","position","coordinatePrecision","coordinatesApproximate","elevationSource","siteType","secondarySiteTypes","terrain","airspaceClass","proximity","infrastructureSensitivity","sensitivity"]
### entities[]/option-3.selections[].assertionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.selections[].consideredAssertionIds
Type: list of string; required in containing object
minItems: 1
### entities[]/option-3.selections[].consideredAssertionIds[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.selections[].evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.selections[].evaluatedAt
Type: string; required in containing object
### entities[]/option-3.selections[].evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-3.selections[].evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.selections[].evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-3.selections[].evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-3.selections[].methodRef
Type: string; required in containing object
pattern: "^method:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.selections[].methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.selections[].rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.kind
Type: string; required in containing object
const: "platform"
### entities[]/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.role
Type: list of object; optional
Sourced role assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-4.fields.role[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.role[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.role[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.role[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.role[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.role[].content/option-1.value
Type: string; required in containing object
enum: ["observer","station","aircraft","vessel"]
### entities[]/option-4.fields.role[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.role[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.role[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.role[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.role[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.role[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.role[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.role[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.role[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.role[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.role[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.role[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.role[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.role[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.role[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.role[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.role[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.role[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.role[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.role[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.role[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.role[].content/option-2.value
Type: string; required in containing object
enum: ["observer","station","aircraft","vessel"]
### entities[]/option-4.fields.role[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.role[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.role[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.role[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.role[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.role[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.role[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.role[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.role[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.role[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.role[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.role[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.role[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.role[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.role[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.role[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.role[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.role[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.role[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.role[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.role[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.role[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.role[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.role[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.role[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.role[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.role[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.role[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.role[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.role[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.role[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.role[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.role[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.role[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.role[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.role[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.role[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.role[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.role[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.role[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.role[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.role[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.role[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.role[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.role[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.role[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.role[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.placeId
Type: list of object; optional
Sourced place id assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-4.fields.placeId[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.placeId[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.placeId[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.placeId[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.placeId[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.placeId[].content/option-1.value
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.placeId[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.placeId[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.placeId[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.placeId[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.placeId[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.placeId[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.placeId[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.placeId[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.placeId[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.placeId[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.placeId[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.placeId[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.placeId[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.placeId[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.placeId[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.placeId[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.placeId[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.placeId[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.placeId[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.placeId[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.placeId[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.placeId[].content/option-2.value
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.placeId[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.placeId[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.placeId[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.placeId[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.placeId[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.placeId[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.placeId[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.placeId[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.placeId[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.placeId[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.placeId[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.placeId[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.placeId[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.placeId[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.placeId[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.placeId[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.placeId[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.placeId[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.placeId[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.placeId[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.placeId[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.placeId[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.placeId[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.placeId[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.placeId[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.placeId[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.placeId[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.placeId[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.placeId[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.placeId[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.placeId[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.placeId[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.placeId[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.placeId[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.placeId[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.placeId[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.placeId[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.placeId[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.placeId[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.placeId[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.placeId[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.placeId[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.placeId[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.placeId[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.placeId[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.placeId[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.placeId[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.name
Type: list of object; optional
Sourced name assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-4.fields.name[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.name[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.name[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.name[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.name[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.name[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.name[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.name[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.name[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.name[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.name[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.name[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.name[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.name[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.name[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.name[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.name[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.name[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.name[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.name[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.name[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.name[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.name[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.name[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.name[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.name[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.name[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.name[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.name[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.name[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.name[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.name[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.name[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.name[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.name[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.name[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.name[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.name[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.name[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.name[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.name[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.name[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.name[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.name[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.name[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.name[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.name[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.name[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.name[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.name[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.name[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.name[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.name[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.name[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.name[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.name[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.name[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.name[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.name[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.name[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.name[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.name[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.name[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.name[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.name[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.name[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.name[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.name[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.name[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.name[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.name[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.name[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.name[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.name[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.name[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.type
Type: list of object; optional
Sourced type assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-4.fields.type[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.type[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.type[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.type[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.type[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.type[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.type[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.type[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.type[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.type[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.type[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.type[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.type[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.type[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.type[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.type[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.type[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.type[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.type[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.type[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.type[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.type[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.type[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.type[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.type[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.type[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.type[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.type[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.type[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.type[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.type[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.type[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.type[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.type[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.type[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.type[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.type[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.type[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.type[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.type[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.type[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.type[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.type[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.type[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.type[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.type[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.type[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.type[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.type[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.type[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.type[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.type[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.type[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.type[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.type[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.type[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.type[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.type[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.type[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.type[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.type[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.type[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.type[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.type[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.type[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.type[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.type[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.type[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.type[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.type[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.type[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.type[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.type[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.type[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.type[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.designation
Type: list of object; optional
Sourced designation assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-4.fields.designation[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.designation[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.designation[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.designation[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.designation[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.designation[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.designation[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.designation[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.designation[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.designation[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.designation[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.designation[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.designation[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.designation[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.designation[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.designation[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.designation[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.designation[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.designation[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.designation[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.designation[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.designation[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.designation[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.designation[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.designation[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.designation[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.designation[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.designation[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.designation[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.designation[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.designation[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.designation[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.designation[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.designation[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.designation[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.designation[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.designation[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.designation[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.designation[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.designation[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.designation[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.designation[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.designation[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.designation[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.designation[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.designation[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.designation[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.designation[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.designation[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.designation[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.designation[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.designation[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.designation[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.designation[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.designation[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.designation[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.designation[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.designation[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.designation[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.designation[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.designation[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.designation[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.designation[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.designation[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.designation[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.designation[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.designation[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.designation[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.designation[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.designation[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.designation[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.designation[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.designation[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.designation[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.designation[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.callsign
Type: list of object; optional
Sourced callsign assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-4.fields.callsign[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.callsign[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.callsign[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.callsign[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.callsign[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.callsign[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.callsign[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.callsign[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.callsign[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.callsign[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.callsign[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.callsign[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.callsign[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.callsign[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.callsign[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.callsign[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.callsign[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.callsign[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.callsign[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.callsign[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.callsign[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.callsign[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.callsign[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.callsign[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.callsign[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.callsign[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.callsign[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.callsign[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.callsign[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.callsign[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.callsign[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.callsign[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.callsign[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.callsign[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.callsign[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.callsign[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.callsign[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.callsign[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.callsign[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.callsign[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.callsign[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.callsign[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.callsign[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.callsign[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.callsign[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.callsign[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.callsign[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.callsign[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.callsign[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.callsign[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.callsign[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.callsign[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.callsign[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.callsign[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.callsign[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.callsign[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.callsign[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.callsign[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.callsign[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.callsign[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.callsign[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.callsign[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.callsign[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.callsign[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.callsign[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.callsign[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.callsign[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.callsign[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.callsign[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.callsign[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.callsign[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.callsign[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.callsign[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.callsign[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.callsign[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.flightNumber
Type: list of object; optional
Sourced flight number assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-4.fields.flightNumber[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.flightNumber[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.flightNumber[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.flightNumber[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.flightNumber[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.flightNumber[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.flightNumber[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.flightNumber[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.flightNumber[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.flightNumber[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.flightNumber[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.flightNumber[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.flightNumber[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.flightNumber[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.flightNumber[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.flightNumber[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.flightNumber[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.flightNumber[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.flightNumber[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.flightNumber[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.flightNumber[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.flightNumber[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.flightNumber[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.flightNumber[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.flightNumber[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.flightNumber[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.flightNumber[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.flightNumber[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.flightNumber[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.flightNumber[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.flightNumber[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.flightNumber[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.flightNumber[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.flightNumber[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.flightNumber[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.flightNumber[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.flightNumber[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.flightNumber[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.flightNumber[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.flightNumber[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.flightNumber[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.flightNumber[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.flightNumber[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.flightNumber[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.flightNumber[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.flightNumber[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.flightNumber[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.flightNumber[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.flightNumber[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.flightNumber[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.flightNumber[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.flightNumber[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.flightNumber[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.flightNumber[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.flightNumber[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.flightNumber[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.flightNumber[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.flightNumber[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.flightNumber[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.flightNumber[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.flightNumber[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.flightNumber[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.flightNumber[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.flightNumber[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.flightNumber[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.flightNumber[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.flightNumber[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.flightNumber[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.flightNumber[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.flightNumber[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.flightNumber[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.flightNumber[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.flightNumber[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.flightNumber[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.flightNumber[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.squadron
Type: list of object; optional
Sourced squadron assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-4.fields.squadron[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.squadron[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.squadron[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.squadron[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.squadron[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.squadron[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.squadron[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.squadron[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.squadron[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.squadron[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.squadron[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.squadron[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.squadron[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.squadron[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.squadron[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.squadron[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.squadron[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.squadron[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.squadron[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.squadron[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.squadron[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.squadron[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.squadron[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.squadron[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.squadron[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.squadron[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.squadron[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.squadron[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.squadron[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.squadron[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.squadron[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.squadron[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.squadron[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.squadron[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.squadron[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.squadron[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.squadron[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.squadron[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.squadron[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.squadron[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.squadron[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.squadron[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.squadron[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.squadron[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.squadron[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.squadron[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.squadron[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.squadron[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.squadron[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.squadron[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.squadron[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.squadron[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.squadron[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.squadron[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.squadron[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.squadron[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.squadron[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.squadron[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.squadron[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.squadron[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.squadron[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.squadron[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.squadron[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.squadron[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.squadron[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.squadron[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.squadron[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.squadron[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.squadron[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.squadron[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.squadron[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.squadron[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.squadron[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.squadron[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.squadron[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.mission
Type: list of object; optional
Sourced mission assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-4.fields.mission[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.mission[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.mission[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.mission[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.mission[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.mission[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.mission[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.mission[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.mission[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.mission[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.mission[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.mission[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.mission[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.mission[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.mission[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.mission[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.mission[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.mission[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.mission[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.mission[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.mission[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.mission[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.mission[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.mission[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.mission[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.mission[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.mission[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.mission[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.mission[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.mission[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.mission[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.mission[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.mission[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.mission[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.mission[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.mission[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.mission[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.mission[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.mission[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.mission[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.mission[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.mission[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.mission[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.mission[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.mission[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.mission[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.mission[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.mission[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.mission[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.mission[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.mission[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.mission[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.mission[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.mission[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.mission[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.mission[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.mission[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.mission[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.mission[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.mission[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.mission[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.mission[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.mission[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.mission[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.mission[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.mission[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.mission[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.mission[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.mission[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.mission[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.mission[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.mission[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.mission[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.mission[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.mission[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.operator
Type: list of object; optional
Sourced operator assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-4.fields.operator[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.operator[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.operator[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.operator[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.operator[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.operator[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.operator[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.operator[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.operator[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.operator[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.operator[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.operator[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.operator[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.operator[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.operator[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.operator[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.operator[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.operator[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.operator[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.operator[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.operator[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.operator[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.operator[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.operator[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.operator[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.operator[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.operator[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.operator[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.operator[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.operator[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.operator[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.operator[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.operator[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.operator[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.operator[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.operator[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.operator[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.operator[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.operator[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.operator[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.operator[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.operator[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.operator[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.operator[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.operator[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.operator[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.operator[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.operator[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.operator[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.operator[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.operator[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.operator[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.operator[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.operator[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.operator[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.operator[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.operator[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.operator[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.operator[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.operator[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.operator[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.operator[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.operator[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.operator[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.operator[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.operator[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.operator[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.operator[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.operator[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.operator[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.operator[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.operator[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.operator[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.operator[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.operator[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.radarContact
Type: list of object; optional
Sourced radar contact assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-4.fields.radarContact[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.radarContact[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.radarContact[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.radarContact[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.radarContact[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.radarContact[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-4.fields.radarContact[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.radarContact[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.radarContact[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.radarContact[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.radarContact[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.radarContact[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.radarContact[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.radarContact[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.radarContact[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.radarContact[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.radarContact[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.radarContact[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.radarContact[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.radarContact[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.radarContact[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.radarContact[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.radarContact[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.radarContact[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.radarContact[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.radarContact[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.radarContact[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.radarContact[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-4.fields.radarContact[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.radarContact[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.radarContact[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.radarContact[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.radarContact[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.radarContact[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.radarContact[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.radarContact[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.radarContact[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.radarContact[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.radarContact[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.radarContact[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.radarContact[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.radarContact[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.radarContact[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.radarContact[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.radarContact[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.radarContact[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.radarContact[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.radarContact[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.radarContact[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.radarContact[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.radarContact[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.radarContact[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.radarContact[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.radarContact[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.radarContact[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.radarContact[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.radarContact[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.radarContact[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.radarContact[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.radarContact[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.radarContact[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.radarContact[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.radarContact[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.radarContact[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.radarContact[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.radarContact[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.radarContact[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.radarContact[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.radarContact[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.radarContact[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.radarContact[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.radarContact[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.radarContact[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.radarContact[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.radarContact[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.weaponsSystemEngaged
Type: list of object; optional
Sourced weapons system engaged assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-4.fields.weaponsSystemEngaged[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.weaponsSystemEngaged[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.weaponsSystemEngaged[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.weaponsSystemEngaged[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.interceptAttempted
Type: list of object; optional
Sourced intercept attempted assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-4.fields.interceptAttempted[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.interceptAttempted[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.interceptAttempted[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.interceptAttempted[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.interceptAttempted[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.interceptAttempted[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-4.fields.interceptAttempted[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.interceptAttempted[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.interceptAttempted[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.interceptAttempted[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.interceptAttempted[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.interceptAttempted[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.interceptAttempted[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.interceptAttempted[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.interceptAttempted[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.interceptAttempted[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.interceptAttempted[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.interceptAttempted[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.interceptAttempted[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.interceptAttempted[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.interceptAttempted[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.interceptAttempted[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.interceptAttempted[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.interceptAttempted[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.interceptAttempted[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.interceptAttempted[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.interceptAttempted[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.interceptAttempted[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-4.fields.interceptAttempted[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.interceptAttempted[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.interceptAttempted[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.interceptAttempted[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.interceptAttempted[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.interceptAttempted[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.interceptAttempted[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.interceptAttempted[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.interceptAttempted[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.interceptAttempted[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.interceptAttempted[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.interceptAttempted[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.interceptAttempted[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.interceptAttempted[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.interceptAttempted[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.interceptAttempted[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.interceptAttempted[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.interceptAttempted[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.interceptAttempted[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.interceptAttempted[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.interceptAttempted[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.interceptAttempted[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.interceptAttempted[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.interceptAttempted[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.interceptAttempted[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.interceptAttempted[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.interceptAttempted[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.interceptAttempted[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.interceptAttempted[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.interceptAttempted[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.interceptAttempted[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.interceptAttempted[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.interceptAttempted[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.interceptAttempted[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.interceptAttempted[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.interceptAttempted[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.interceptAttempted[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.interceptAttempted[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.interceptAttempted[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.interceptAttempted[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.interceptAttempted[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.interceptAttempted[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.interceptAttempted[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.interceptAttempted[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.interceptAttempted[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.interceptAttempted[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.interceptAttempted[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.measurements
Type: list of object; optional
### entities[]/option-4.measurements[]
Type: object
Association to an Observation measurement. No copied numeric value.
Extra fields: Not allowed in this object
### entities[]/option-4.measurements[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.measurements[].role
Type: string; required in containing object
enum: ["size","count","speed","altitude","heading","ambient_temperature","relative_humidity","wind_speed","moon_illumination","duration","distance","bearing","water_depth","coordinate_precision","time_alignment"]
### entities[]/option-4.measurements[].measurementId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.measurements[].relatedPlaceId
Type: string; optional
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.selections
Type: list of object; optional
### entities[]/option-4.selections[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.selections[].field
Type: string; required in containing object
enum: ["role","placeId","name","type","designation","callsign","flightNumber","squadron","mission","operator","radarContact","weaponsSystemEngaged","interceptAttempted"]
### entities[]/option-4.selections[].assertionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.selections[].consideredAssertionIds
Type: list of string; required in containing object
minItems: 1
### entities[]/option-4.selections[].consideredAssertionIds[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.selections[].evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.selections[].evaluatedAt
Type: string; required in containing object
### entities[]/option-4.selections[].evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-4.selections[].evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-4.selections[].evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-4.selections[].evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-4.selections[].methodRef
Type: string; required in containing object
pattern: "^method:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.selections[].methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.selections[].rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.kind
Type: string; required in containing object
const: "environment"
### entities[]/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.placeId
Type: list of object; optional
Sourced place id assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-5.fields.placeId[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.placeId[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.placeId[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.placeId[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.placeId[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.placeId[].content/option-1.value
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.placeId[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.placeId[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.placeId[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.placeId[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.placeId[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.placeId[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.placeId[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.placeId[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.placeId[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.placeId[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.placeId[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.placeId[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.placeId[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.placeId[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.placeId[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.placeId[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.placeId[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.placeId[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.placeId[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.placeId[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.placeId[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.placeId[].content/option-2.value
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.placeId[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.placeId[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.placeId[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.placeId[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.placeId[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.placeId[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.placeId[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.placeId[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.placeId[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.placeId[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.placeId[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.placeId[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.placeId[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.placeId[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.placeId[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.placeId[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.placeId[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.placeId[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.placeId[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.placeId[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.placeId[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.placeId[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.placeId[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.placeId[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.placeId[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.placeId[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.placeId[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.placeId[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.placeId[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.placeId[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.placeId[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.placeId[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.placeId[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.placeId[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.placeId[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.placeId[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.placeId[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.placeId[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.placeId[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.placeId[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.placeId[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.placeId[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.placeId[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.placeId[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.placeId[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.placeId[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.placeId[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.platformId
Type: list of object; optional
Sourced platform id assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-5.fields.platformId[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.platformId[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.platformId[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.platformId[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.platformId[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.platformId[].content/option-1.value
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.platformId[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.platformId[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.platformId[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.platformId[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.platformId[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.platformId[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.platformId[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.platformId[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.platformId[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.platformId[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.platformId[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.platformId[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.platformId[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.platformId[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.platformId[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.platformId[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.platformId[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.platformId[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.platformId[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.platformId[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.platformId[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.platformId[].content/option-2.value
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.platformId[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.platformId[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.platformId[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.platformId[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.platformId[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.platformId[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.platformId[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.platformId[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.platformId[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.platformId[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.platformId[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.platformId[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.platformId[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.platformId[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.platformId[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.platformId[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.platformId[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.platformId[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.platformId[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.platformId[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.platformId[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.platformId[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.platformId[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.platformId[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.platformId[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.platformId[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.platformId[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.platformId[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.platformId[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.platformId[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.platformId[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.platformId[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.platformId[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.platformId[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.platformId[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.platformId[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.platformId[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.platformId[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.platformId[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.platformId[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.platformId[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.platformId[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.platformId[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.platformId[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.platformId[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.platformId[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.platformId[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.temporalId
Type: list of object; optional
Sourced temporal id assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-5.fields.temporalId[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.temporalId[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.temporalId[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.temporalId[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.temporalId[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.temporalId[].content/option-1.value
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.temporalId[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.temporalId[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.temporalId[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.temporalId[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.temporalId[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.temporalId[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.temporalId[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.temporalId[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.temporalId[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.temporalId[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.temporalId[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.temporalId[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.temporalId[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.temporalId[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.temporalId[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.temporalId[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.temporalId[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.temporalId[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.temporalId[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.temporalId[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.temporalId[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.temporalId[].content/option-2.value
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.temporalId[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.temporalId[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.temporalId[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.temporalId[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.temporalId[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.temporalId[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.temporalId[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.temporalId[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.temporalId[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.temporalId[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.temporalId[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.temporalId[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.temporalId[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.temporalId[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.temporalId[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.temporalId[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.temporalId[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.temporalId[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.temporalId[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.temporalId[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.temporalId[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.temporalId[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.temporalId[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.temporalId[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.temporalId[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.temporalId[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.temporalId[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.temporalId[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.temporalId[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.temporalId[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.temporalId[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.temporalId[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.temporalId[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.temporalId[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.temporalId[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.temporalId[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.temporalId[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.temporalId[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.temporalId[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.temporalId[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.temporalId[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.temporalId[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.temporalId[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.temporalId[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.temporalId[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.temporalId[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.temporalId[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.observedAt
Type: list of object; optional
Sourced observed at assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-5.fields.observedAt[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.observedAt[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.observedAt[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.observedAt[].content/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-5.fields.observedAt[].content/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-5.fields.observedAt[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.observedAt[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.observedAt[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.observedAt[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.observedAt[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.observedAt[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.observedAt[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.observedAt[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.observedAt[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.observedAt[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.observedAt[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.observedAt[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.observedAt[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.observedAt[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.observedAt[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.observedAt[].content/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-5.fields.observedAt[].content/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-5.fields.observedAt[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.observedAt[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.observedAt[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.observedAt[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.observedAt[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.observedAt[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.observedAt[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.observedAt[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.observedAt[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.observedAt[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.observedAt[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.observedAt[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.observedAt[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.observedAt[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.observedAt[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.observedAt[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.observedAt[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.observedAt[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.observedAt[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.observedAt[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.observedAt[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.observedAt[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.observedAt[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.observedAt[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.observedAt[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.observedAt[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.observedAt[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.observedAt[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.observedAt[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.observedAt[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.observedAt[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.observedAt[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.observedAt[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.observedAt[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.observedAt[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.weather
Type: list of object; optional
Sourced weather assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-5.fields.weather[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.weather[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.weather[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.weather[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.weather[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.weather[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.weather[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.weather[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.weather[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.weather[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.weather[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.weather[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.weather[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.weather[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.weather[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.weather[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.weather[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.weather[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.weather[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.weather[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.weather[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.weather[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.weather[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.weather[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.weather[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.weather[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.weather[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.weather[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.weather[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.weather[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.weather[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.weather[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.weather[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.weather[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.weather[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.weather[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.weather[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.weather[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.weather[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.weather[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.weather[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.weather[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.weather[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.weather[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.weather[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.weather[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.weather[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.weather[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.weather[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.weather[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.weather[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.weather[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.weather[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.weather[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.weather[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.weather[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.weather[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.weather[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.weather[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.weather[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.weather[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.weather[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.weather[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.weather[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.weather[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.weather[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.weather[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.weather[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.weather[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.weather[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.weather[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.weather[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.weather[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.weather[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.weather[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.visibility
Type: list of object; optional
Sourced visibility assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-5.fields.visibility[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.visibility[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.visibility[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.visibility[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.visibility[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.visibility[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.visibility[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.visibility[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.visibility[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.visibility[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.visibility[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.visibility[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.visibility[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.visibility[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.visibility[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.visibility[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.visibility[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.visibility[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.visibility[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.visibility[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.visibility[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.visibility[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.visibility[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.visibility[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.visibility[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.visibility[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.visibility[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.visibility[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.visibility[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.visibility[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.visibility[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.visibility[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.visibility[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.visibility[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.visibility[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.visibility[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.visibility[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.visibility[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.visibility[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.visibility[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.visibility[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.visibility[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.visibility[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.visibility[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.visibility[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.visibility[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.visibility[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.visibility[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.visibility[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.visibility[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.visibility[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.visibility[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.visibility[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.visibility[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.visibility[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.visibility[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.visibility[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.visibility[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.visibility[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.visibility[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.visibility[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.visibility[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.visibility[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.visibility[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.visibility[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.visibility[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.visibility[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.visibility[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.visibility[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.visibility[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.visibility[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.visibility[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.visibility[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.visibility[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.visibility[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.cloudCover
Type: list of object; optional
Sourced cloud cover assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-5.fields.cloudCover[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.cloudCover[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.cloudCover[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.cloudCover[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.cloudCover[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.cloudCover[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.cloudCover[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.cloudCover[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.cloudCover[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.cloudCover[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.cloudCover[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.cloudCover[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.cloudCover[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.cloudCover[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.cloudCover[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.cloudCover[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.cloudCover[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.cloudCover[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.cloudCover[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.cloudCover[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.cloudCover[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.cloudCover[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.cloudCover[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.cloudCover[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.cloudCover[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.cloudCover[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.cloudCover[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.cloudCover[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.cloudCover[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.cloudCover[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.cloudCover[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.cloudCover[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.cloudCover[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.cloudCover[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.cloudCover[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.cloudCover[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.cloudCover[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.cloudCover[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.cloudCover[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.cloudCover[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.cloudCover[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.cloudCover[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.cloudCover[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.cloudCover[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.cloudCover[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.cloudCover[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.cloudCover[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.cloudCover[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.cloudCover[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.cloudCover[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.cloudCover[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.cloudCover[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.cloudCover[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.cloudCover[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.cloudCover[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.cloudCover[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.cloudCover[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.cloudCover[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.cloudCover[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.cloudCover[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.cloudCover[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.cloudCover[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.cloudCover[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.cloudCover[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.cloudCover[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.cloudCover[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.cloudCover[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.cloudCover[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.cloudCover[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.cloudCover[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.cloudCover[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.cloudCover[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.cloudCover[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.cloudCover[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.cloudCover[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.windDescription
Type: list of object; optional
Sourced wind description assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-5.fields.windDescription[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.windDescription[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.windDescription[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.windDescription[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.windDescription[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.windDescription[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.windDescription[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.windDescription[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.windDescription[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.windDescription[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.windDescription[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.windDescription[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.windDescription[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.windDescription[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.windDescription[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.windDescription[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.windDescription[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.windDescription[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.windDescription[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.windDescription[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.windDescription[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.windDescription[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.windDescription[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.windDescription[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.windDescription[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.windDescription[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.windDescription[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.windDescription[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.windDescription[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.windDescription[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.windDescription[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.windDescription[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.windDescription[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.windDescription[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.windDescription[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.windDescription[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.windDescription[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.windDescription[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.windDescription[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.windDescription[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.windDescription[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.windDescription[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.windDescription[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.windDescription[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.windDescription[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.windDescription[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.windDescription[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.windDescription[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.windDescription[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.windDescription[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.windDescription[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.windDescription[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.windDescription[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.windDescription[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.windDescription[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.windDescription[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.windDescription[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.windDescription[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.windDescription[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.windDescription[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.windDescription[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.windDescription[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.windDescription[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.windDescription[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.windDescription[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.windDescription[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.windDescription[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.windDescription[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.windDescription[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.windDescription[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.windDescription[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.windDescription[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.windDescription[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.windDescription[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.windDescription[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.celestialConditions
Type: list of object; optional
Sourced celestial conditions assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-5.fields.celestialConditions[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.celestialConditions[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.celestialConditions[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.celestialConditions[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.celestialConditions[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.celestialConditions[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.celestialConditions[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.celestialConditions[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.celestialConditions[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.celestialConditions[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.celestialConditions[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.celestialConditions[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.celestialConditions[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.celestialConditions[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.celestialConditions[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.celestialConditions[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.celestialConditions[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.celestialConditions[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.celestialConditions[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.celestialConditions[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.celestialConditions[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.celestialConditions[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.celestialConditions[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.celestialConditions[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.celestialConditions[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.celestialConditions[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.celestialConditions[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.celestialConditions[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.celestialConditions[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.celestialConditions[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.celestialConditions[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.celestialConditions[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.celestialConditions[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.celestialConditions[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.celestialConditions[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.celestialConditions[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.celestialConditions[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.celestialConditions[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.celestialConditions[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.celestialConditions[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.celestialConditions[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.celestialConditions[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.celestialConditions[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.celestialConditions[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.celestialConditions[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.celestialConditions[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.celestialConditions[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.celestialConditions[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.celestialConditions[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.celestialConditions[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.celestialConditions[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.celestialConditions[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.celestialConditions[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.celestialConditions[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.celestialConditions[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.celestialConditions[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.celestialConditions[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.celestialConditions[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.celestialConditions[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.celestialConditions[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.celestialConditions[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.celestialConditions[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.celestialConditions[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.celestialConditions[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.celestialConditions[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.celestialConditions[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.celestialConditions[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.celestialConditions[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.celestialConditions[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.celestialConditions[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.celestialConditions[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.celestialConditions[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.celestialConditions[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.celestialConditions[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.celestialConditions[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.moonPhase
Type: list of object; optional
Sourced moon phase assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-5.fields.moonPhase[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.moonPhase[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.moonPhase[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.moonPhase[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.moonPhase[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.moonPhase[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.moonPhase[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.moonPhase[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.moonPhase[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.moonPhase[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.moonPhase[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.moonPhase[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.moonPhase[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.moonPhase[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.moonPhase[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.moonPhase[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.moonPhase[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.moonPhase[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.moonPhase[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.moonPhase[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.moonPhase[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.moonPhase[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.moonPhase[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.moonPhase[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.moonPhase[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.moonPhase[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.moonPhase[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.moonPhase[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.moonPhase[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.moonPhase[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.moonPhase[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.moonPhase[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.moonPhase[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.moonPhase[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.moonPhase[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.moonPhase[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.moonPhase[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.moonPhase[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.moonPhase[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.moonPhase[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.moonPhase[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.moonPhase[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.moonPhase[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.moonPhase[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.moonPhase[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.moonPhase[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.moonPhase[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.moonPhase[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.moonPhase[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.moonPhase[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.moonPhase[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.moonPhase[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.moonPhase[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.moonPhase[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.moonPhase[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.moonPhase[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.moonPhase[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.moonPhase[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.moonPhase[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.moonPhase[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.moonPhase[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.moonPhase[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.moonPhase[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.moonPhase[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.moonPhase[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.moonPhase[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.moonPhase[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.moonPhase[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.moonPhase[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.moonPhase[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.moonPhase[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.moonPhase[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.moonPhase[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.moonPhase[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.moonPhase[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.precipitation
Type: list of object; optional
Sourced precipitation assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-5.fields.precipitation[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.precipitation[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.precipitation[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.precipitation[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.precipitation[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.precipitation[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.precipitation[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.precipitation[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.precipitation[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.precipitation[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.precipitation[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.precipitation[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.precipitation[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.precipitation[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.precipitation[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.precipitation[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.precipitation[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.precipitation[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.precipitation[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.precipitation[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.precipitation[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.precipitation[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.precipitation[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.precipitation[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.precipitation[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.precipitation[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.precipitation[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.precipitation[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.precipitation[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.precipitation[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.precipitation[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.precipitation[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.precipitation[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.precipitation[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.precipitation[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.precipitation[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.precipitation[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.precipitation[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.precipitation[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.precipitation[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.precipitation[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.precipitation[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.precipitation[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.precipitation[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.precipitation[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.precipitation[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.precipitation[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.precipitation[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.precipitation[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.precipitation[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.precipitation[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.precipitation[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.precipitation[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.precipitation[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.precipitation[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.precipitation[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.precipitation[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.precipitation[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.precipitation[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.precipitation[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.precipitation[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.precipitation[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.precipitation[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.precipitation[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.precipitation[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.precipitation[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.precipitation[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.precipitation[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.precipitation[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.precipitation[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.precipitation[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.precipitation[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.precipitation[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.precipitation[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.precipitation[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.measurements
Type: list of object; optional
### entities[]/option-5.measurements[]
Type: object
Association to an Observation measurement. No copied numeric value.
Extra fields: Not allowed in this object
### entities[]/option-5.measurements[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.measurements[].role
Type: string; required in containing object
enum: ["size","count","speed","altitude","heading","ambient_temperature","relative_humidity","wind_speed","moon_illumination","duration","distance","bearing","water_depth","coordinate_precision","time_alignment"]
### entities[]/option-5.measurements[].measurementId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.measurements[].relatedPlaceId
Type: string; optional
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.selections
Type: list of object; optional
### entities[]/option-5.selections[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.selections[].field
Type: string; required in containing object
enum: ["placeId","platformId","temporalId","observedAt","weather","visibility","cloudCover","windDescription","celestialConditions","moonPhase","precipitation"]
### entities[]/option-5.selections[].assertionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.selections[].consideredAssertionIds
Type: list of string; required in containing object
minItems: 1
### entities[]/option-5.selections[].consideredAssertionIds[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.selections[].evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.selections[].evaluatedAt
Type: string; required in containing object
### entities[]/option-5.selections[].evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-5.selections[].evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.selections[].evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-5.selections[].evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-5.selections[].methodRef
Type: string; required in containing object
pattern: "^method:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.selections[].methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.selections[].rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime
Type: list of object; optional
Sourced event time assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-6.fields.eventTime[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.eventTime[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.eventTime[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-6.fields.eventTime[].content/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-6.fields.eventTime[].content/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-6.fields.eventTime[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.eventTime[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.eventTime[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.eventTime[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.eventTime[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.eventTime[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.eventTime[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.eventTime[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.eventTime[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.eventTime[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.eventTime[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.eventTime[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.eventTime[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.eventTime[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.eventTime[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-6.fields.eventTime[].content/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-6.fields.eventTime[].content/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-6.fields.eventTime[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.eventTime[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.eventTime[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.eventTime[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.eventTime[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.eventTime[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.eventTime[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.eventTime[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.eventTime[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.eventTime[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.eventTime[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.eventTime[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.eventTime[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.eventTime[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.eventTime[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.eventTime[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-6.fields.eventTime[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-6.fields.eventTime[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-6.fields.eventTime[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.eventTime[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-6.fields.eventTime[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.eventTime[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.eventTime[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.eventTime[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.eventTime[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.eventTime[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.eventTime[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.eventTime[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.eventTime[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.eventTime[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.eventTime[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventTime[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.eventTime[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.eventTime[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.eventTime[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarPeriod
Type: list of object; optional
Sourced calendar period assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-6.fields.calendarPeriod[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarPeriod[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.calendarPeriod[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.calendarPeriod[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarPeriod[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-6.fields.calendarPeriod[].content/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.calendarPeriod[].content/option-1.value/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarPeriod[].content/option-1.value/option-1.kind
Type: string; required in containing object
const: "quarter"
### entities[]/option-6.fields.calendarPeriod[].content/option-1.value/option-1.year
Type: integer; required in containing object
minimum: 1
maximum: 9999
### entities[]/option-6.fields.calendarPeriod[].content/option-1.value/option-1.quarter
Type: integer; required in containing object
minimum: 1
maximum: 4
### entities[]/option-6.fields.calendarPeriod[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarPeriod[].content/option-1.value/option-2.kind
Type: string; required in containing object
enum: ["decade","century"]
### entities[]/option-6.fields.calendarPeriod[].content/option-1.value/option-2.startYear
Type: integer; required in containing object
minimum: 1
maximum: 9999
### entities[]/option-6.fields.calendarPeriod[].content/option-1.value/option-2.endYear
Type: integer; required in containing object
minimum: 1
maximum: 9999
### entities[]/option-6.fields.calendarPeriod[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarPeriod[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.calendarPeriod[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarPeriod[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.calendarPeriod[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.calendarPeriod[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.calendarPeriod[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarPeriod[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.calendarPeriod[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.calendarPeriod[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarPeriod[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.calendarPeriod[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.calendarPeriod[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.calendarPeriod[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarPeriod[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.calendarPeriod[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.calendarPeriod[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarPeriod[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarPeriod[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarPeriod[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarPeriod[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-6.fields.calendarPeriod[].content/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.calendarPeriod[].content/option-2.value/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarPeriod[].content/option-2.value/option-1.kind
Type: string; required in containing object
const: "quarter"
### entities[]/option-6.fields.calendarPeriod[].content/option-2.value/option-1.year
Type: integer; required in containing object
minimum: 1
maximum: 9999
### entities[]/option-6.fields.calendarPeriod[].content/option-2.value/option-1.quarter
Type: integer; required in containing object
minimum: 1
maximum: 4
### entities[]/option-6.fields.calendarPeriod[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarPeriod[].content/option-2.value/option-2.kind
Type: string; required in containing object
enum: ["decade","century"]
### entities[]/option-6.fields.calendarPeriod[].content/option-2.value/option-2.startYear
Type: integer; required in containing object
minimum: 1
maximum: 9999
### entities[]/option-6.fields.calendarPeriod[].content/option-2.value/option-2.endYear
Type: integer; required in containing object
minimum: 1
maximum: 9999
### entities[]/option-6.fields.calendarPeriod[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarPeriod[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarPeriod[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.calendarPeriod[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarPeriod[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.calendarPeriod[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.calendarPeriod[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.calendarPeriod[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarPeriod[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.calendarPeriod[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.calendarPeriod[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarPeriod[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.calendarPeriod[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.calendarPeriod[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.calendarPeriod[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarPeriod[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.calendarPeriod[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.calendarPeriod[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarPeriod[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarPeriod[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarPeriod[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarPeriod[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-6.fields.calendarPeriod[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-6.fields.calendarPeriod[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarPeriod[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-6.fields.calendarPeriod[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarPeriod[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarPeriod[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-6.fields.calendarPeriod[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarPeriod[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarPeriod[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.calendarPeriod[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarPeriod[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.calendarPeriod[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.calendarPeriod[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.calendarPeriod[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarPeriod[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.calendarPeriod[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.calendarPeriod[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarPeriod[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.calendarPeriod[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.calendarPeriod[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.calendarPeriod[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarPeriod[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.calendarPeriod[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.calendarPeriod[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarPeriod[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.relativeDate
Type: list of object; optional
Sourced relative date assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-6.fields.relativeDate[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.relativeDate[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.relativeDate[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.relativeDate[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.relativeDate[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-6.fields.relativeDate[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.relativeDate[].content/option-1.value.anchorTemporalId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.relativeDate[].content/option-1.value.relation
Type: string; required in containing object
enum: ["before","after","during","around"]
### entities[]/option-6.fields.relativeDate[].content/option-1.value.offset
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.relativeDate[].content/option-1.value.offset.value
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.relativeDate[].content/option-1.value.offset.unit
Type: string; required in containing object
enum: ["seconds","minutes","hours","days","weeks","months","years"]
### entities[]/option-6.fields.relativeDate[].content/option-1.value.offset.approximate
Type: boolean; required in containing object
### entities[]/option-6.fields.relativeDate[].content/option-1.value.wording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.relativeDate[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.relativeDate[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.relativeDate[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.relativeDate[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.relativeDate[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.relativeDate[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.relativeDate[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.relativeDate[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.relativeDate[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.relativeDate[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.relativeDate[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.relativeDate[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.relativeDate[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.relativeDate[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.relativeDate[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.relativeDate[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.relativeDate[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.relativeDate[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.relativeDate[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.relativeDate[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.relativeDate[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-6.fields.relativeDate[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.relativeDate[].content/option-2.value.anchorTemporalId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.relativeDate[].content/option-2.value.relation
Type: string; required in containing object
enum: ["before","after","during","around"]
### entities[]/option-6.fields.relativeDate[].content/option-2.value.offset
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.relativeDate[].content/option-2.value.offset.value
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.relativeDate[].content/option-2.value.offset.unit
Type: string; required in containing object
enum: ["seconds","minutes","hours","days","weeks","months","years"]
### entities[]/option-6.fields.relativeDate[].content/option-2.value.offset.approximate
Type: boolean; required in containing object
### entities[]/option-6.fields.relativeDate[].content/option-2.value.wording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.relativeDate[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.relativeDate[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.relativeDate[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.relativeDate[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.relativeDate[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.relativeDate[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.relativeDate[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.relativeDate[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.relativeDate[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.relativeDate[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.relativeDate[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.relativeDate[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.relativeDate[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.relativeDate[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.relativeDate[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.relativeDate[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.relativeDate[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.relativeDate[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.relativeDate[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.relativeDate[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.relativeDate[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.relativeDate[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-6.fields.relativeDate[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-6.fields.relativeDate[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.relativeDate[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-6.fields.relativeDate[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.relativeDate[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.relativeDate[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-6.fields.relativeDate[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.relativeDate[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.relativeDate[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.relativeDate[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.relativeDate[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.relativeDate[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.relativeDate[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.relativeDate[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.relativeDate[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.relativeDate[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.relativeDate[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.relativeDate[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.relativeDate[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.relativeDate[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.relativeDate[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.relativeDate[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.relativeDate[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.relativeDate[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.relativeDate[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarRange
Type: list of object; optional
Sourced calendar range assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-6.fields.calendarRange[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.calendarRange[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.calendarRange[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-6.fields.calendarRange[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.value/option-2
Type: choice
Choose: At least one of the alternatives below
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.value/option-2/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.value/option-2/option-1.kind
Type: string; required in containing object
const: "quarter"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.value/option-2/option-1.year
Type: integer; required in containing object
minimum: 1
maximum: 9999
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.value/option-2/option-1.quarter
Type: integer; required in containing object
minimum: 1
maximum: 4
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.value/option-2/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.value/option-2/option-2.kind
Type: string; required in containing object
enum: ["decade","century"]
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.value/option-2/option-2.startYear
Type: integer; required in containing object
minimum: 1
maximum: 9999
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.value/option-2/option-2.endYear
Type: integer; required in containing object
minimum: 1
maximum: 9999
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.certainty
Type: string; required in containing object
enum: ["exact","approximate","estimated","unknown"]
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.display
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.start.notes
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.value/option-2
Type: choice
Choose: At least one of the alternatives below
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.value/option-2/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.value/option-2/option-1.kind
Type: string; required in containing object
const: "quarter"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.value/option-2/option-1.year
Type: integer; required in containing object
minimum: 1
maximum: 9999
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.value/option-2/option-1.quarter
Type: integer; required in containing object
minimum: 1
maximum: 4
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.value/option-2/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.value/option-2/option-2.kind
Type: string; required in containing object
enum: ["decade","century"]
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.value/option-2/option-2.startYear
Type: integer; required in containing object
minimum: 1
maximum: 9999
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.value/option-2/option-2.endYear
Type: integer; required in containing object
minimum: 1
maximum: 9999
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.certainty
Type: string; required in containing object
enum: ["exact","approximate","estimated","unknown"]
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.display
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.end.notes
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarRange[].content/option-1.value.type
Type: string; required in containing object
enum: ["span","uncertainty","active_period","investigation_period","observation_window"]
### entities[]/option-6.fields.calendarRange[].content/option-1.value.inclusiveEnd
Type: boolean; required in containing object
### entities[]/option-6.fields.calendarRange[].content/option-1.value.display
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarRange[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.calendarRange[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.calendarRange[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.calendarRange[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.calendarRange[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.calendarRange[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.calendarRange[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.calendarRange[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.calendarRange[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.calendarRange[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.calendarRange[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.calendarRange[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarRange[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarRange[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarRange[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-6.fields.calendarRange[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.value/option-2
Type: choice
Choose: At least one of the alternatives below
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.value/option-2/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.value/option-2/option-1.kind
Type: string; required in containing object
const: "quarter"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.value/option-2/option-1.year
Type: integer; required in containing object
minimum: 1
maximum: 9999
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.value/option-2/option-1.quarter
Type: integer; required in containing object
minimum: 1
maximum: 4
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.value/option-2/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.value/option-2/option-2.kind
Type: string; required in containing object
enum: ["decade","century"]
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.value/option-2/option-2.startYear
Type: integer; required in containing object
minimum: 1
maximum: 9999
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.value/option-2/option-2.endYear
Type: integer; required in containing object
minimum: 1
maximum: 9999
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.certainty
Type: string; required in containing object
enum: ["exact","approximate","estimated","unknown"]
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.display
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.start.notes
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.value/option-2
Type: choice
Choose: At least one of the alternatives below
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.value/option-2/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.value/option-2/option-1.kind
Type: string; required in containing object
const: "quarter"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.value/option-2/option-1.year
Type: integer; required in containing object
minimum: 1
maximum: 9999
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.value/option-2/option-1.quarter
Type: integer; required in containing object
minimum: 1
maximum: 4
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.value/option-2/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.value/option-2/option-2.kind
Type: string; required in containing object
enum: ["decade","century"]
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.value/option-2/option-2.startYear
Type: integer; required in containing object
minimum: 1
maximum: 9999
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.value/option-2/option-2.endYear
Type: integer; required in containing object
minimum: 1
maximum: 9999
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.certainty
Type: string; required in containing object
enum: ["exact","approximate","estimated","unknown"]
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.display
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.end.notes
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarRange[].content/option-2.value.type
Type: string; required in containing object
enum: ["span","uncertainty","active_period","investigation_period","observation_window"]
### entities[]/option-6.fields.calendarRange[].content/option-2.value.inclusiveEnd
Type: boolean; required in containing object
### entities[]/option-6.fields.calendarRange[].content/option-2.value.display
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarRange[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarRange[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.calendarRange[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.calendarRange[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.calendarRange[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.calendarRange[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.calendarRange[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.calendarRange[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.calendarRange[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.calendarRange[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.calendarRange[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.calendarRange[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.calendarRange[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarRange[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarRange[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarRange[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-6.fields.calendarRange[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-6.fields.calendarRange[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-6.fields.calendarRange[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarRange[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-6.fields.calendarRange[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarRange[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.calendarRange[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.calendarRange[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.calendarRange[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.calendarRange[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.calendarRange[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.calendarRange[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.calendarRange[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.calendarRange[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.calendarRange[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.calendarRange[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.calendarRange[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.calendarRange[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.calendarRange[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.localTime
Type: list of object; optional
Sourced local time assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-6.fields.localTime[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.localTime[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.localTime[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.localTime[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.localTime[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-6.fields.localTime[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.localTime[].content/option-1.value.clock
Type: string; required in containing object
pattern: "^([01][0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$"
### entities[]/option-6.fields.localTime[].content/option-1.value.timezone
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.localTime[].content/option-1.value.utcOffset
Type: string; optional
pattern: "^[+-](0[0-9]|1[0-4]):[0-5][0-9]$"
### entities[]/option-6.fields.localTime[].content/option-1.value.daylightSaving
Type: boolean; optional
### entities[]/option-6.fields.localTime[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.localTime[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.localTime[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.localTime[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.localTime[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.localTime[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.localTime[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.localTime[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.localTime[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.localTime[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.localTime[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.localTime[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.localTime[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.localTime[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.localTime[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.localTime[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.localTime[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.localTime[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.localTime[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.localTime[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.localTime[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-6.fields.localTime[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.localTime[].content/option-2.value.clock
Type: string; required in containing object
pattern: "^([01][0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$"
### entities[]/option-6.fields.localTime[].content/option-2.value.timezone
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.localTime[].content/option-2.value.utcOffset
Type: string; optional
pattern: "^[+-](0[0-9]|1[0-4]):[0-5][0-9]$"
### entities[]/option-6.fields.localTime[].content/option-2.value.daylightSaving
Type: boolean; optional
### entities[]/option-6.fields.localTime[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.localTime[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.localTime[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.localTime[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.localTime[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.localTime[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.localTime[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.localTime[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.localTime[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.localTime[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.localTime[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.localTime[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.localTime[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.localTime[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.localTime[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.localTime[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.localTime[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.localTime[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.localTime[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.localTime[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.localTime[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.localTime[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-6.fields.localTime[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-6.fields.localTime[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.localTime[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-6.fields.localTime[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.localTime[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.localTime[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-6.fields.localTime[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.localTime[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.localTime[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.localTime[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.localTime[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.localTime[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.localTime[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.localTime[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.localTime[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.localTime[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.localTime[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.localTime[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.localTime[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.localTime[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.localTime[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.localTime[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.localTime[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.localTime[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.localTime[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.dateCertainty
Type: list of object; optional
Sourced date certainty assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-6.fields.dateCertainty[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.dateCertainty[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.dateCertainty[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.dateCertainty[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.dateCertainty[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-6.fields.dateCertainty[].content/option-1.value
Type: string; required in containing object
enum: ["exact","approximate","estimated","unknown"]
### entities[]/option-6.fields.dateCertainty[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.dateCertainty[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.dateCertainty[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.dateCertainty[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.dateCertainty[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.dateCertainty[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.dateCertainty[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.dateCertainty[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.dateCertainty[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.dateCertainty[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.dateCertainty[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.dateCertainty[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.dateCertainty[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.dateCertainty[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.dateCertainty[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.dateCertainty[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.dateCertainty[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.dateCertainty[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.dateCertainty[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.dateCertainty[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.dateCertainty[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-6.fields.dateCertainty[].content/option-2.value
Type: string; required in containing object
enum: ["exact","approximate","estimated","unknown"]
### entities[]/option-6.fields.dateCertainty[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.dateCertainty[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.dateCertainty[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.dateCertainty[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.dateCertainty[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.dateCertainty[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.dateCertainty[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.dateCertainty[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.dateCertainty[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.dateCertainty[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.dateCertainty[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.dateCertainty[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.dateCertainty[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.dateCertainty[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.dateCertainty[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.dateCertainty[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.dateCertainty[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.dateCertainty[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.dateCertainty[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.dateCertainty[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.dateCertainty[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.dateCertainty[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-6.fields.dateCertainty[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-6.fields.dateCertainty[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.dateCertainty[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-6.fields.dateCertainty[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.dateCertainty[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.dateCertainty[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-6.fields.dateCertainty[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.dateCertainty[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.dateCertainty[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.dateCertainty[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.dateCertainty[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.dateCertainty[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.dateCertainty[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.dateCertainty[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.dateCertainty[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.dateCertainty[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.dateCertainty[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.dateCertainty[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.dateCertainty[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.dateCertainty[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.dateCertainty[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.dateCertainty[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.dateCertainty[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.dateCertainty[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.dateCertainty[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.timeCertainty
Type: list of object; optional
Sourced time certainty assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-6.fields.timeCertainty[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeCertainty[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.timeCertainty[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.timeCertainty[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeCertainty[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-6.fields.timeCertainty[].content/option-1.value
Type: string; required in containing object
enum: ["exact","approximate","estimated","unknown"]
### entities[]/option-6.fields.timeCertainty[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeCertainty[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.timeCertainty[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeCertainty[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.timeCertainty[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.timeCertainty[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.timeCertainty[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeCertainty[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.timeCertainty[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.timeCertainty[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeCertainty[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.timeCertainty[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.timeCertainty[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.timeCertainty[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeCertainty[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.timeCertainty[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.timeCertainty[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.timeCertainty[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.timeCertainty[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.timeCertainty[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeCertainty[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-6.fields.timeCertainty[].content/option-2.value
Type: string; required in containing object
enum: ["exact","approximate","estimated","unknown"]
### entities[]/option-6.fields.timeCertainty[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.timeCertainty[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeCertainty[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.timeCertainty[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeCertainty[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.timeCertainty[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.timeCertainty[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.timeCertainty[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeCertainty[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.timeCertainty[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.timeCertainty[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeCertainty[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.timeCertainty[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.timeCertainty[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.timeCertainty[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeCertainty[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.timeCertainty[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.timeCertainty[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.timeCertainty[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.timeCertainty[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.timeCertainty[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeCertainty[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-6.fields.timeCertainty[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-6.fields.timeCertainty[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeCertainty[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-6.fields.timeCertainty[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.timeCertainty[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeCertainty[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-6.fields.timeCertainty[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.timeCertainty[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeCertainty[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.timeCertainty[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeCertainty[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.timeCertainty[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.timeCertainty[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.timeCertainty[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeCertainty[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.timeCertainty[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.timeCertainty[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeCertainty[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.timeCertainty[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.timeCertainty[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.timeCertainty[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeCertainty[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.timeCertainty[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.timeCertainty[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.timeCertainty[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.timeOfDay
Type: list of object; optional
Sourced time of day assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-6.fields.timeOfDay[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeOfDay[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.timeOfDay[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.timeOfDay[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeOfDay[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-6.fields.timeOfDay[].content/option-1.value
Type: string; required in containing object
Twilight-aware time-of-day bucket for an observation.
enum: ["astronomical_dawn","nautical_dawn","civil_dawn","sunrise","morning","noon","afternoon","sunset","civil_dusk","nautical_dusk","astronomical_dusk","night","unknown"]
### entities[]/option-6.fields.timeOfDay[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeOfDay[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.timeOfDay[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeOfDay[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.timeOfDay[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.timeOfDay[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.timeOfDay[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeOfDay[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.timeOfDay[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.timeOfDay[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeOfDay[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.timeOfDay[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.timeOfDay[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.timeOfDay[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeOfDay[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.timeOfDay[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.timeOfDay[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.timeOfDay[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.timeOfDay[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.timeOfDay[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeOfDay[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-6.fields.timeOfDay[].content/option-2.value
Type: string; required in containing object
Twilight-aware time-of-day bucket for an observation.
enum: ["astronomical_dawn","nautical_dawn","civil_dawn","sunrise","morning","noon","afternoon","sunset","civil_dusk","nautical_dusk","astronomical_dusk","night","unknown"]
### entities[]/option-6.fields.timeOfDay[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.timeOfDay[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeOfDay[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.timeOfDay[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeOfDay[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.timeOfDay[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.timeOfDay[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.timeOfDay[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeOfDay[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.timeOfDay[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.timeOfDay[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeOfDay[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.timeOfDay[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.timeOfDay[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.timeOfDay[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeOfDay[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.timeOfDay[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.timeOfDay[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.timeOfDay[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.timeOfDay[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.timeOfDay[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeOfDay[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-6.fields.timeOfDay[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-6.fields.timeOfDay[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeOfDay[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-6.fields.timeOfDay[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.timeOfDay[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeOfDay[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-6.fields.timeOfDay[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.timeOfDay[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeOfDay[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.timeOfDay[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeOfDay[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.timeOfDay[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.timeOfDay[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.timeOfDay[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeOfDay[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.timeOfDay[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.timeOfDay[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeOfDay[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.timeOfDay[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.timeOfDay[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.timeOfDay[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.timeOfDay[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.timeOfDay[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.timeOfDay[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.timeOfDay[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.durationDescription
Type: list of object; optional
Sourced duration description assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-6.fields.durationDescription[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.durationDescription[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.durationDescription[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.durationDescription[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.durationDescription[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-6.fields.durationDescription[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.durationDescription[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.durationDescription[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.durationDescription[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.durationDescription[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.durationDescription[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.durationDescription[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.durationDescription[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.durationDescription[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.durationDescription[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.durationDescription[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.durationDescription[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.durationDescription[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.durationDescription[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.durationDescription[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.durationDescription[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.durationDescription[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.durationDescription[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.durationDescription[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.durationDescription[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.durationDescription[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.durationDescription[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-6.fields.durationDescription[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.durationDescription[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.durationDescription[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.durationDescription[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.durationDescription[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.durationDescription[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.durationDescription[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.durationDescription[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.durationDescription[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.durationDescription[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.durationDescription[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.durationDescription[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.durationDescription[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.durationDescription[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.durationDescription[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.durationDescription[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.durationDescription[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.durationDescription[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.durationDescription[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.durationDescription[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.durationDescription[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.durationDescription[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.durationDescription[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-6.fields.durationDescription[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-6.fields.durationDescription[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.durationDescription[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-6.fields.durationDescription[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.durationDescription[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.durationDescription[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-6.fields.durationDescription[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.durationDescription[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.durationDescription[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.durationDescription[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.durationDescription[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.durationDescription[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.durationDescription[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.durationDescription[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.durationDescription[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.durationDescription[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.durationDescription[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.durationDescription[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.durationDescription[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.durationDescription[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.durationDescription[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.durationDescription[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.durationDescription[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.durationDescription[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.durationDescription[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.display
Type: list of object; optional
Sourced display assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-6.fields.display[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.display[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.display[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.display[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.display[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-6.fields.display[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.display[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.display[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.display[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.display[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.display[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.display[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.display[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.display[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.display[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.display[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.display[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.display[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.display[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.display[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.display[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.display[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.display[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.display[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.display[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.display[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.display[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-6.fields.display[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.display[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.display[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.display[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.display[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.display[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.display[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.display[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.display[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.display[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.display[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.display[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.display[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.display[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.display[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.display[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.display[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.display[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.display[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.display[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.display[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.display[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.display[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-6.fields.display[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-6.fields.display[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.display[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-6.fields.display[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.display[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.display[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-6.fields.display[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.display[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.display[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.display[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.display[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.display[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.display[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.display[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.display[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.display[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.display[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.display[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.display[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.display[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.display[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.display[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.display[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.display[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.display[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes
Type: list of object; optional
Sourced notes assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-6.fields.notes[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.notes[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.notes[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-6.fields.notes[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.notes[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.notes[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.notes[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-6.fields.notes[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.notes[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.notes[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.notes[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-6.fields.notes[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-6.fields.notes[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-6.fields.notes[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-6.fields.notes[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.notes[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.notes[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.notes[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.rangeInclusivity
Type: list of object; optional
Sourced range inclusivity assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-6.fields.rangeInclusivity[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.rangeInclusivity[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.rangeInclusivity[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.rangeInclusivity[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.rangeInclusivity[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-6.fields.rangeInclusivity[].content/option-1.value
Type: string; required in containing object
enum: ["both","start","end","neither","unknown"]
### entities[]/option-6.fields.rangeInclusivity[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.rangeInclusivity[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.rangeInclusivity[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.rangeInclusivity[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.rangeInclusivity[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.rangeInclusivity[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.rangeInclusivity[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.rangeInclusivity[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.rangeInclusivity[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.rangeInclusivity[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.rangeInclusivity[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.rangeInclusivity[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.rangeInclusivity[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.rangeInclusivity[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.rangeInclusivity[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.rangeInclusivity[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.rangeInclusivity[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.rangeInclusivity[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.rangeInclusivity[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.rangeInclusivity[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.rangeInclusivity[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-6.fields.rangeInclusivity[].content/option-2.value
Type: string; required in containing object
enum: ["both","start","end","neither","unknown"]
### entities[]/option-6.fields.rangeInclusivity[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.rangeInclusivity[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.rangeInclusivity[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.rangeInclusivity[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.rangeInclusivity[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.rangeInclusivity[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.rangeInclusivity[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.rangeInclusivity[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.rangeInclusivity[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.rangeInclusivity[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.rangeInclusivity[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.rangeInclusivity[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.rangeInclusivity[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.rangeInclusivity[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.rangeInclusivity[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.rangeInclusivity[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.rangeInclusivity[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.rangeInclusivity[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.rangeInclusivity[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.rangeInclusivity[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.rangeInclusivity[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.rangeInclusivity[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-6.fields.rangeInclusivity[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-6.fields.rangeInclusivity[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.rangeInclusivity[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-6.fields.rangeInclusivity[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.rangeInclusivity[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.rangeInclusivity[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-6.fields.rangeInclusivity[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.rangeInclusivity[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.rangeInclusivity[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.rangeInclusivity[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.rangeInclusivity[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.rangeInclusivity[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.rangeInclusivity[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.rangeInclusivity[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.rangeInclusivity[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.rangeInclusivity[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.rangeInclusivity[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.rangeInclusivity[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.rangeInclusivity[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.rangeInclusivity[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.rangeInclusivity[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.rangeInclusivity[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.rangeInclusivity[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.rangeInclusivity[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.rangeInclusivity[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.measurements
Type: list of object; optional
### entities[]/option-6.measurements[]
Type: object
Association to an Observation measurement. No copied numeric value.
Extra fields: Not allowed in this object
### entities[]/option-6.measurements[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.measurements[].role
Type: string; required in containing object
enum: ["size","count","speed","altitude","heading","ambient_temperature","relative_humidity","wind_speed","moon_illumination","duration","distance","bearing","water_depth","coordinate_precision","time_alignment"]
### entities[]/option-6.measurements[].measurementId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.measurements[].relatedPlaceId
Type: string; optional
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.selections
Type: list of object; optional
### entities[]/option-6.selections[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.selections[].field
Type: string; required in containing object
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-6.selections[].assertionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.selections[].consideredAssertionIds
Type: list of string; required in containing object
minItems: 1
### entities[]/option-6.selections[].consideredAssertionIds[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.selections[].evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.selections[].evaluatedAt
Type: string; required in containing object
### entities[]/option-6.selections[].evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-6.selections[].evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.selections[].evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-6.selections[].evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-6.selections[].methodRef
Type: string; required in containing object
pattern: "^method:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.selections[].methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.selections[].rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.kind
Type: string; required in containing object
const: "collection"
### entities[]/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.sensorType
Type: list of object; optional
Sourced sensor type assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-7.fields.sensorType[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.sensorType[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.sensorType[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.sensorType[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.sensorType[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.sensorType[].content/option-1.value
Type: string; required in containing object
Class of sensor that produced a reading.
enum: ["military_radar","civilian_radar","airborne_radar","shipborne_radar","ground_radar","flir","eo_sensor","satellite","sonar","electromagnetic_sensor","radiation_sensor","civilian_camera","security_camera","dashcam","phone_camera","infrasonic_sensor","ultrasonic_sensor","adsb_receiver","rf_spectrum_analyzer","passive_radar","particle_detector","atomic_clock","gnss_receiver","fluxgate_magnetometer","air_quality_sensor","barometer","lightning_detector","imu","eeg","gsr","pulse_oximeter","pupillometer","hardware_rng","other"]
### entities[]/option-7.fields.sensorType[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.sensorType[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.sensorType[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.sensorType[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.sensorType[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.sensorType[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.sensorType[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.sensorType[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.sensorType[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.sensorType[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.sensorType[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.sensorType[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.sensorType[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.sensorType[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.sensorType[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.sensorType[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.sensorType[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.sensorType[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.sensorType[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.sensorType[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.sensorType[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.sensorType[].content/option-2.value
Type: string; required in containing object
Class of sensor that produced a reading.
enum: ["military_radar","civilian_radar","airborne_radar","shipborne_radar","ground_radar","flir","eo_sensor","satellite","sonar","electromagnetic_sensor","radiation_sensor","civilian_camera","security_camera","dashcam","phone_camera","infrasonic_sensor","ultrasonic_sensor","adsb_receiver","rf_spectrum_analyzer","passive_radar","particle_detector","atomic_clock","gnss_receiver","fluxgate_magnetometer","air_quality_sensor","barometer","lightning_detector","imu","eeg","gsr","pulse_oximeter","pupillometer","hardware_rng","other"]
### entities[]/option-7.fields.sensorType[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.sensorType[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.sensorType[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.sensorType[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.sensorType[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.sensorType[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.sensorType[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.sensorType[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.sensorType[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.sensorType[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.sensorType[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.sensorType[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.sensorType[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.sensorType[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.sensorType[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.sensorType[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.sensorType[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.sensorType[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.sensorType[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.sensorType[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.sensorType[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.sensorType[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.sensorType[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.sensorType[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.sensorType[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.sensorType[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.sensorType[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.sensorType[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.sensorType[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.sensorType[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.sensorType[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.sensorType[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.sensorType[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.sensorType[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.sensorType[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.sensorType[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.sensorType[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.sensorType[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.sensorType[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.sensorType[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.sensorType[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.sensorType[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.sensorType[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.sensorType[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.sensorType[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.sensorType[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.sensorType[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.detectionMethod
Type: list of object; optional
Sourced detection method assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-7.fields.detectionMethod[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.detectionMethod[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.detectionMethod[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.detectionMethod[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.detectionMethod[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.detectionMethod[].content/option-1.value
Type: string; required in containing object
How a sensor detected the object.
enum: ["radar_primary","radar_secondary","radar_doppler","radar_phased_array","infrared_flir","infrared_other","electro_optical","visual_camera","satellite_imagery","sonar_active","sonar_passive","electromagnetic","radiation_detector","magnetometer","gravimeter","acoustic","seismic","lidar","spectroscopic","radio_frequency","particle","gnss","time_reference","chemical","inertial","physiological","pressure","multiple","other","unknown"]
### entities[]/option-7.fields.detectionMethod[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.detectionMethod[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.detectionMethod[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.detectionMethod[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.detectionMethod[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.detectionMethod[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.detectionMethod[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.detectionMethod[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.detectionMethod[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.detectionMethod[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.detectionMethod[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.detectionMethod[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.detectionMethod[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.detectionMethod[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.detectionMethod[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.detectionMethod[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.detectionMethod[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.detectionMethod[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.detectionMethod[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.detectionMethod[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.detectionMethod[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.detectionMethod[].content/option-2.value
Type: string; required in containing object
How a sensor detected the object.
enum: ["radar_primary","radar_secondary","radar_doppler","radar_phased_array","infrared_flir","infrared_other","electro_optical","visual_camera","satellite_imagery","sonar_active","sonar_passive","electromagnetic","radiation_detector","magnetometer","gravimeter","acoustic","seismic","lidar","spectroscopic","radio_frequency","particle","gnss","time_reference","chemical","inertial","physiological","pressure","multiple","other","unknown"]
### entities[]/option-7.fields.detectionMethod[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.detectionMethod[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.detectionMethod[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.detectionMethod[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.detectionMethod[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.detectionMethod[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.detectionMethod[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.detectionMethod[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.detectionMethod[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.detectionMethod[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.detectionMethod[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.detectionMethod[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.detectionMethod[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.detectionMethod[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.detectionMethod[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.detectionMethod[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.detectionMethod[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.detectionMethod[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.detectionMethod[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.detectionMethod[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.detectionMethod[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.detectionMethod[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.detectionMethod[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.detectionMethod[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.detectionMethod[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.detectionMethod[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.detectionMethod[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.detectionMethod[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.detectionMethod[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.detectionMethod[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.detectionMethod[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.detectionMethod[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.detectionMethod[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.detectionMethod[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.detectionMethod[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.detectionMethod[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.detectionMethod[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.detectionMethod[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.detectionMethod[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.detectionMethod[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.detectionMethod[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.detectionMethod[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.detectionMethod[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.detectionMethod[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.detectionMethod[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.detectionMethod[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.detectionMethod[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.productRefs
Type: list of object; optional
Sourced product refs assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-7.fields.productRefs[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.productRefs[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.productRefs[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.productRefs[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.productRefs[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.productRefs[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-7.fields.productRefs[].content/option-1.value[]
Type: string
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.productRefs[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.productRefs[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.productRefs[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.productRefs[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.productRefs[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.productRefs[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.productRefs[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.productRefs[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.productRefs[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.productRefs[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.productRefs[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.productRefs[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.productRefs[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.productRefs[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.productRefs[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.productRefs[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.productRefs[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.productRefs[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.productRefs[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.productRefs[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.productRefs[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.productRefs[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-7.fields.productRefs[].content/option-2.value[]
Type: string
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.productRefs[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.productRefs[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.productRefs[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.productRefs[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.productRefs[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.productRefs[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.productRefs[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.productRefs[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.productRefs[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.productRefs[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.productRefs[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.productRefs[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.productRefs[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.productRefs[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.productRefs[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.productRefs[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.productRefs[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.productRefs[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.productRefs[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.productRefs[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.productRefs[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.productRefs[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.productRefs[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.productRefs[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.productRefs[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.productRefs[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.productRefs[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.productRefs[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.productRefs[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.productRefs[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.productRefs[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.productRefs[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.productRefs[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.productRefs[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.productRefs[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.productRefs[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.productRefs[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.productRefs[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.productRefs[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.productRefs[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.productRefs[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.productRefs[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.productRefs[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.productRefs[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.productRefs[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.productRefs[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.productRefs[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.acquisitionIds
Type: list of object; optional
Sourced acquisition ids assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-7.fields.acquisitionIds[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.acquisitionIds[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.acquisitionIds[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.acquisitionIds[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.acquisitionIds[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.acquisitionIds[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-7.fields.acquisitionIds[].content/option-1.value[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.acquisitionIds[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.acquisitionIds[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.acquisitionIds[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.acquisitionIds[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.acquisitionIds[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.acquisitionIds[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.acquisitionIds[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.acquisitionIds[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.acquisitionIds[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.acquisitionIds[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.acquisitionIds[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.acquisitionIds[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.acquisitionIds[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.acquisitionIds[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.acquisitionIds[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.acquisitionIds[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.acquisitionIds[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.acquisitionIds[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.acquisitionIds[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.acquisitionIds[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.acquisitionIds[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.acquisitionIds[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-7.fields.acquisitionIds[].content/option-2.value[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.acquisitionIds[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.acquisitionIds[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.acquisitionIds[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.acquisitionIds[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.acquisitionIds[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.acquisitionIds[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.acquisitionIds[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.acquisitionIds[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.acquisitionIds[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.acquisitionIds[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.acquisitionIds[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.acquisitionIds[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.acquisitionIds[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.acquisitionIds[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.acquisitionIds[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.acquisitionIds[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.acquisitionIds[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.acquisitionIds[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.acquisitionIds[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.acquisitionIds[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.acquisitionIds[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.acquisitionIds[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.acquisitionIds[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.acquisitionIds[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.acquisitionIds[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.acquisitionIds[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.acquisitionIds[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.acquisitionIds[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.acquisitionIds[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.acquisitionIds[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.acquisitionIds[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.acquisitionIds[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.acquisitionIds[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.acquisitionIds[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.acquisitionIds[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.acquisitionIds[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.acquisitionIds[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.acquisitionIds[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.acquisitionIds[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.acquisitionIds[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.acquisitionIds[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.acquisitionIds[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.acquisitionIds[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.acquisitionIds[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.acquisitionIds[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.acquisitionIds[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.acquisitionIds[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.retentionStatus
Type: list of object; optional
Sourced retention status assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-7.fields.retentionStatus[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.retentionStatus[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.retentionStatus[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.retentionStatus[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.retentionStatus[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.retentionStatus[].content/option-1.value
Type: string; required in containing object
enum: ["available","archived","destroyed","classified","unknown"]
### entities[]/option-7.fields.retentionStatus[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.retentionStatus[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.retentionStatus[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.retentionStatus[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.retentionStatus[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.retentionStatus[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.retentionStatus[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.retentionStatus[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.retentionStatus[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.retentionStatus[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.retentionStatus[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.retentionStatus[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.retentionStatus[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.retentionStatus[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.retentionStatus[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.retentionStatus[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.retentionStatus[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.retentionStatus[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.retentionStatus[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.retentionStatus[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.retentionStatus[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.retentionStatus[].content/option-2.value
Type: string; required in containing object
enum: ["available","archived","destroyed","classified","unknown"]
### entities[]/option-7.fields.retentionStatus[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.retentionStatus[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.retentionStatus[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.retentionStatus[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.retentionStatus[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.retentionStatus[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.retentionStatus[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.retentionStatus[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.retentionStatus[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.retentionStatus[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.retentionStatus[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.retentionStatus[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.retentionStatus[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.retentionStatus[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.retentionStatus[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.retentionStatus[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.retentionStatus[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.retentionStatus[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.retentionStatus[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.retentionStatus[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.retentionStatus[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.retentionStatus[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.retentionStatus[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.retentionStatus[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.retentionStatus[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.retentionStatus[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.retentionStatus[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.retentionStatus[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.retentionStatus[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.retentionStatus[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.retentionStatus[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.retentionStatus[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.retentionStatus[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.retentionStatus[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.retentionStatus[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.retentionStatus[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.retentionStatus[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.retentionStatus[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.retentionStatus[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.retentionStatus[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.retentionStatus[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.retentionStatus[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.retentionStatus[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.retentionStatus[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.retentionStatus[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.retentionStatus[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.retentionStatus[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.rawDataAvailable
Type: list of object; optional
Sourced raw data available assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-7.fields.rawDataAvailable[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.rawDataAvailable[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.rawDataAvailable[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.rawDataAvailable[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.rawDataAvailable[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.rawDataAvailable[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-7.fields.rawDataAvailable[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.rawDataAvailable[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.rawDataAvailable[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.rawDataAvailable[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.rawDataAvailable[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.rawDataAvailable[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.rawDataAvailable[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.rawDataAvailable[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.rawDataAvailable[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.rawDataAvailable[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.rawDataAvailable[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.rawDataAvailable[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.rawDataAvailable[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.rawDataAvailable[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.rawDataAvailable[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.rawDataAvailable[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.rawDataAvailable[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.rawDataAvailable[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.rawDataAvailable[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.rawDataAvailable[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.rawDataAvailable[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.rawDataAvailable[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-7.fields.rawDataAvailable[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.rawDataAvailable[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.rawDataAvailable[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.rawDataAvailable[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.rawDataAvailable[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.rawDataAvailable[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.rawDataAvailable[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.rawDataAvailable[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.rawDataAvailable[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.rawDataAvailable[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.rawDataAvailable[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.rawDataAvailable[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.rawDataAvailable[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.rawDataAvailable[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.rawDataAvailable[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.rawDataAvailable[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.rawDataAvailable[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.rawDataAvailable[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.rawDataAvailable[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.rawDataAvailable[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.rawDataAvailable[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.rawDataAvailable[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.rawDataAvailable[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.rawDataAvailable[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.rawDataAvailable[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.rawDataAvailable[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.rawDataAvailable[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.rawDataAvailable[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.rawDataAvailable[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.rawDataAvailable[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.rawDataAvailable[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.rawDataAvailable[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.rawDataAvailable[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.rawDataAvailable[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.rawDataAvailable[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.rawDataAvailable[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.rawDataAvailable[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.rawDataAvailable[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.rawDataAvailable[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.rawDataAvailable[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.rawDataAvailable[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.rawDataAvailable[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.rawDataAvailable[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.rawDataAvailable[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.rawDataAvailable[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.rawDataAvailable[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.rawDataAvailable[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.anomalies
Type: list of object; optional
Sourced anomalies assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-7.fields.anomalies[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.anomalies[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.anomalies[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.anomalies[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.anomalies[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.anomalies[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-7.fields.anomalies[].content/option-1.value[]
Type: string
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.anomalies[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.anomalies[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.anomalies[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.anomalies[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.anomalies[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.anomalies[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.anomalies[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.anomalies[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.anomalies[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.anomalies[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.anomalies[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.anomalies[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.anomalies[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.anomalies[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.anomalies[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.anomalies[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.anomalies[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.anomalies[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.anomalies[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.anomalies[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.anomalies[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.anomalies[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-7.fields.anomalies[].content/option-2.value[]
Type: string
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.anomalies[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.anomalies[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.anomalies[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.anomalies[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.anomalies[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.anomalies[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.anomalies[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.anomalies[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.anomalies[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.anomalies[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.anomalies[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.anomalies[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.anomalies[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.anomalies[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.anomalies[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.anomalies[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.anomalies[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.anomalies[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.anomalies[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.anomalies[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.anomalies[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.anomalies[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.anomalies[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.anomalies[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.anomalies[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.anomalies[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.anomalies[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.anomalies[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.anomalies[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.anomalies[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.anomalies[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.anomalies[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.anomalies[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.anomalies[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.anomalies[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.anomalies[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.anomalies[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.anomalies[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.anomalies[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.anomalies[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.anomalies[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.anomalies[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.anomalies[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.anomalies[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.anomalies[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.anomalies[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.anomalies[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.correlationDescription
Type: list of object; optional
Sourced correlation description assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-7.fields.correlationDescription[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.correlationDescription[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.correlationDescription[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.correlationDescription[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.correlationDescription[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.correlationDescription[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.correlationDescription[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.correlationDescription[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.correlationDescription[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.correlationDescription[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.correlationDescription[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.correlationDescription[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.correlationDescription[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.correlationDescription[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.correlationDescription[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.correlationDescription[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.correlationDescription[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.correlationDescription[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.correlationDescription[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.correlationDescription[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.correlationDescription[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.correlationDescription[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.correlationDescription[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.correlationDescription[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.correlationDescription[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.correlationDescription[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.correlationDescription[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.correlationDescription[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.correlationDescription[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.correlationDescription[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.correlationDescription[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.correlationDescription[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.correlationDescription[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.correlationDescription[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.correlationDescription[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.correlationDescription[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.correlationDescription[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.correlationDescription[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.correlationDescription[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.correlationDescription[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.correlationDescription[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.correlationDescription[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.correlationDescription[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.correlationDescription[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.correlationDescription[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.correlationDescription[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.correlationDescription[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.correlationDescription[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.correlationDescription[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.correlationDescription[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.correlationDescription[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.correlationDescription[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.correlationDescription[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.correlationDescription[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.correlationDescription[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.correlationDescription[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.correlationDescription[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.correlationDescription[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.correlationDescription[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.correlationDescription[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.correlationDescription[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.correlationDescription[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.correlationDescription[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.correlationDescription[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.correlationDescription[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.correlationDescription[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.correlationDescription[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.correlationDescription[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.correlationDescription[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.correlationDescription[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.correlationDescription[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.correlationDescription[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.correlationDescription[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.correlationDescription[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.correlationDescription[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.alignmentDescription
Type: list of object; optional
Sourced alignment description assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-7.fields.alignmentDescription[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.alignmentDescription[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.alignmentDescription[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.alignmentDescription[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.alignmentDescription[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.alignmentDescription[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.alignmentDescription[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.alignmentDescription[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.alignmentDescription[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.alignmentDescription[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.alignmentDescription[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.alignmentDescription[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.alignmentDescription[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.alignmentDescription[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.alignmentDescription[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.alignmentDescription[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.alignmentDescription[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.alignmentDescription[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.alignmentDescription[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.alignmentDescription[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.alignmentDescription[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.alignmentDescription[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.alignmentDescription[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.alignmentDescription[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.alignmentDescription[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.alignmentDescription[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.alignmentDescription[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.alignmentDescription[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.alignmentDescription[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.alignmentDescription[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.alignmentDescription[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.alignmentDescription[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.alignmentDescription[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.alignmentDescription[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.alignmentDescription[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.alignmentDescription[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.alignmentDescription[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.alignmentDescription[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.alignmentDescription[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.alignmentDescription[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.alignmentDescription[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.alignmentDescription[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.alignmentDescription[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.alignmentDescription[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.alignmentDescription[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.alignmentDescription[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.alignmentDescription[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.alignmentDescription[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.alignmentDescription[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.alignmentDescription[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.alignmentDescription[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.alignmentDescription[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.alignmentDescription[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.alignmentDescription[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.alignmentDescription[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.alignmentDescription[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.alignmentDescription[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.alignmentDescription[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.alignmentDescription[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.alignmentDescription[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.alignmentDescription[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.alignmentDescription[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.alignmentDescription[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.alignmentDescription[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.alignmentDescription[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.alignmentDescription[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.alignmentDescription[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.alignmentDescription[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.alignmentDescription[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.alignmentDescription[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.alignmentDescription[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.alignmentDescription[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.alignmentDescription[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.alignmentDescription[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.alignmentDescription[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes
Type: list of object; optional
Sourced notes assertions. Keep alternatives and missingness explicit; no assertion is selected by default.
minItems: 1
### entities[]/option-7.fields.notes[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.notes[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.notes[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.notes[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.notes[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.notes[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.notes[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.notes[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.notes[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.notes[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.notes[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.notes[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.notes[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.notes[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.notes[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.notes[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.notes[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.notes[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.measurements
Type: list of object; optional
### entities[]/option-7.measurements[]
Type: object
Association to an Observation measurement. No copied numeric value.
Extra fields: Not allowed in this object
### entities[]/option-7.measurements[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.measurements[].role
Type: string; required in containing object
enum: ["size","count","speed","altitude","heading","ambient_temperature","relative_humidity","wind_speed","moon_illumination","duration","distance","bearing","water_depth","coordinate_precision","time_alignment"]
### entities[]/option-7.measurements[].measurementId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.measurements[].relatedPlaceId
Type: string; optional
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.selections
Type: list of object; optional
### entities[]/option-7.selections[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.selections[].field
Type: string; required in containing object
enum: ["sensorType","detectionMethod","productRefs","acquisitionIds","retentionStatus","rawDataAvailable","anomalies","correlationDescription","alignmentDescription","notes"]
### entities[]/option-7.selections[].assertionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.selections[].consideredAssertionIds
Type: list of string; required in containing object
minItems: 1
### entities[]/option-7.selections[].consideredAssertionIds[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.selections[].evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.selections[].evaluatedAt
Type: string; required in containing object
### entities[]/option-7.selections[].evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-7.selections[].evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.selections[].evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-7.selections[].evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-7.selections[].methodRef
Type: string; required in containing object
pattern: "^method:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.selections[].methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.selections[].rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
## Interpretations with precise references
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
Claims about a particular context entity or field, tied to the exact document version and source assertions.
Schema: urn:disclosureos:experimental:claim-history:0.2.0
Export: @disclosureos/records/experimental/v2/claims/schema/0.2.0
### kind
Type: string; required in containing object
Identifies the document kind.
const: "claim_history"
### schemaVersion
Type: string; required in containing object
The document contract version.
const: "0.2.0"
### id
Type: string; required in containing object
The scoped document identity.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### contextRefs
Type: list of object; required in containing object
Exact context snapshots available to the claims.
### contextRefs[]
Type: object
Extra fields: Not allowed in this object
### contextRefs[].documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### contextRefs[].schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### contextRefs[].sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation
Type: object; required in containing object
The existing observation, preserved under its own contract.
Extra fields: Not allowed in this object
### observation.kind
Type: string; required in containing object
const: "observation"
### observation.schemaVersion
Type: string; required in containing object
const: "0.1.0"
### observation.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.status
Type: string; required in containing object
enum: ["draft","published","withdrawn"]
### observation.createdAt
Type: string; required in containing object
### observation.createdAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.createdAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.createdAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.createdAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.updatedAt
Type: string; required in containing object
### observation.updatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.updatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.updatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.updatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.summary
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.eventTime
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.eventTime/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.state
Type: string; required in containing object
const: "known"
### observation.eventTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### observation.eventTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### observation.eventTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### observation.eventTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.eventTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### observation.eventTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.eventTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### observation.eventTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### observation.eventTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.eventTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.eventTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### observation.eventTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.eventTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### observation.eventTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.eventTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### observation.eventTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.eventTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### observation.eventTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.eventTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### observation.eventTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### observation.eventTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.eventTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.eventTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### observation.eventTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.eventTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.eventTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### observation.eventTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.eventTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### observation.eventTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.eventTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### observation.eventTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### observation.eventTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.eventTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.eventTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### observation.eventTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.eventTime/option-1.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-1.sourceRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-1.selection
Type: object; optional
Extra fields: Not allowed in this object
### observation.eventTime/option-1.selection.assertionRef
Type: string; required in containing object
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-1.selection.consideredAssertionRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-1.selection.consideredAssertionRefs[]
Type: string
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-1.selection.methodRef
Type: string; required in containing object
pattern: "^method:[^\\s:]+(?![\\s\\S])"
### observation.eventTime/option-1.selection.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-1.selection.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-1.selection.evaluatedAt
Type: string; required in containing object
### observation.eventTime/option-1.selection.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-1.selection.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.selection.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-1.selection.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-1.selection.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-1.uncertainty
Type: choice; optional
Choose: Exactly one of the alternatives below
### observation.eventTime/option-1.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.eventTime/option-1.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.eventTime/option-1.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.eventTime/option-1.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.eventTime/option-1.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-1.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-1.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-1.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.eventTime/option-1.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.eventTime/option-1.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-1.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-1.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-1.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.eventTime/option-1.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.eventTime/option-1.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.eventTime/option-1.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.eventTime/option-1.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-1.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-1.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.state
Type: string; required in containing object
const: "approximate"
### observation.eventTime/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### observation.eventTime/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### observation.eventTime/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### observation.eventTime/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.eventTime/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### observation.eventTime/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.eventTime/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### observation.eventTime/option-2.value/option-1/option-3.value
Type: string; required in containing object
### observation.eventTime/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.eventTime/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.eventTime/option-2.value/option-1/option-4.value
Type: string; required in containing object
### observation.eventTime/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.eventTime/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### observation.eventTime/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.eventTime/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### observation.eventTime/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.eventTime/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### observation.eventTime/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.eventTime/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### observation.eventTime/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### observation.eventTime/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.eventTime/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.eventTime/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### observation.eventTime/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.eventTime/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.eventTime/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### observation.eventTime/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.eventTime/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### observation.eventTime/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.eventTime/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### observation.eventTime/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### observation.eventTime/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.eventTime/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.eventTime/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### observation.eventTime/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.eventTime/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-2.selection
Type: object; optional
Extra fields: Not allowed in this object
### observation.eventTime/option-2.selection.assertionRef
Type: string; required in containing object
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-2.selection.consideredAssertionRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-2.selection.consideredAssertionRefs[]
Type: string
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-2.selection.methodRef
Type: string; required in containing object
pattern: "^method:[^\\s:]+(?![\\s\\S])"
### observation.eventTime/option-2.selection.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.selection.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.selection.evaluatedAt
Type: string; required in containing object
### observation.eventTime/option-2.selection.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-2.selection.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.selection.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-2.selection.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-2.selection.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.uncertainty
Type: choice; optional
Choose: Exactly one of the alternatives below
### observation.eventTime/option-2.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.eventTime/option-2.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.eventTime/option-2.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.eventTime/option-2.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.eventTime/option-2.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-2.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-2.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.eventTime/option-2.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.eventTime/option-2.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-2.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-2.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.eventTime/option-2.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.eventTime/option-2.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.eventTime/option-2.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.eventTime/option-2.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-2.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-3.state
Type: string; required in containing object
const: "unknown"
### observation.eventTime/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### observation.eventTime/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-4.state
Type: string; required in containing object
const: "redacted"
### observation.eventTime/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.state
Type: string; required in containing object
const: "known"
### observation.position/option-1.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.latitude
Type: number; required in containing object
minimum: -90
maximum: 90
### observation.position/option-1.value/option-1.longitude
Type: number; required in containing object
minimum: -180
maximum: 180
### observation.position/option-1.value/option-1.kind
Type: string; required in containing object
const: "geodetic"
### observation.position/option-1.value/option-1.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.altitude
Type: object; optional
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.altitude.value
Type: number; required in containing object
### observation.position/option-1.value/option-1.altitude.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.altitude.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-1.altitude.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.altitude.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-1.value/option-1.altitude.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.altitude.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.altitude.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.altitude.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-1.value/option-1.altitude.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.altitude.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.altitude.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.altitude.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.uncertainty
Type: object; optional
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.latitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-1.uncertainty.latitude/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.latitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-1.value/option-1.uncertainty.latitude/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.latitude/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.uncertainty.latitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.uncertainty.latitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-1.value/option-1.uncertainty.latitude/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.latitude/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.uncertainty.latitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.uncertainty.latitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.uncertainty.longitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-1.uncertainty.longitude/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.longitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-1.value/option-1.uncertainty.longitude/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.longitude/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.uncertainty.longitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.uncertainty.longitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-1.value/option-1.uncertainty.longitude/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.longitude/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.uncertainty.longitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.uncertainty.longitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.kind
Type: string; required in containing object
const: "cartesian"
### observation.position/option-1.value/option-2.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.x
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.x.value
Type: number; required in containing object
### observation.position/option-1.value/option-2.x.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.x.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-2.x.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.x.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-1.value/option-2.x.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-1.value/option-2.x.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.x.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-1.value/option-2.x.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.x.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.x.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.x.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.x.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.x.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-1.value/option-2.x.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.x.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.x.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.x.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.x.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-1.value/option-2.x.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-1.value/option-2.x.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.x.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-1.value/option-2.x.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.x.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.x.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.x.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.y
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.y.value
Type: number; required in containing object
### observation.position/option-1.value/option-2.y.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.y.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-2.y.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.y.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-1.value/option-2.y.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-1.value/option-2.y.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.y.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-1.value/option-2.y.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.y.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.y.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.y.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.y.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.y.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-1.value/option-2.y.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.y.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.y.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.y.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.y.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-1.value/option-2.y.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-1.value/option-2.y.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.y.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-1.value/option-2.y.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.y.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.y.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.y.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.z
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.z.value
Type: number; required in containing object
### observation.position/option-1.value/option-2.z.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.z.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-2.z.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.z.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-1.value/option-2.z.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-1.value/option-2.z.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.z.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-1.value/option-2.z.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.z.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.z.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.z.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.z.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.z.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-1.value/option-2.z.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.z.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.z.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.z.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.z.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-1.value/option-2.z.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-1.value/option-2.z.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.z.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-1.value/option-2.z.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.z.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.z.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.z.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.sourceRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.selection
Type: object; optional
Extra fields: Not allowed in this object
### observation.position/option-1.selection.assertionRef
Type: string; required in containing object
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.selection.consideredAssertionRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.selection.consideredAssertionRefs[]
Type: string
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.selection.methodRef
Type: string; required in containing object
pattern: "^method:[^\\s:]+(?![\\s\\S])"
### observation.position/option-1.selection.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.selection.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.selection.evaluatedAt
Type: string; required in containing object
### observation.position/option-1.selection.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.position/option-1.selection.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.position/option-1.selection.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.position/option-1.selection.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.position/option-1.selection.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.state
Type: string; required in containing object
const: "approximate"
### observation.position/option-2.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.latitude
Type: number; required in containing object
minimum: -90
maximum: 90
### observation.position/option-2.value/option-1.longitude
Type: number; required in containing object
minimum: -180
maximum: 180
### observation.position/option-2.value/option-1.kind
Type: string; required in containing object
const: "geodetic"
### observation.position/option-2.value/option-1.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.altitude
Type: object; optional
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.altitude.value
Type: number; required in containing object
### observation.position/option-2.value/option-1.altitude.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.altitude.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-1.altitude.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.altitude.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-2.value/option-1.altitude.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.altitude.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.altitude.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.altitude.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-2.value/option-1.altitude.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.altitude.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.altitude.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.altitude.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.uncertainty
Type: object; optional
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.latitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-1.uncertainty.latitude/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.latitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-2.value/option-1.uncertainty.latitude/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.latitude/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.uncertainty.latitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.uncertainty.latitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-2.value/option-1.uncertainty.latitude/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.latitude/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.uncertainty.latitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.uncertainty.latitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.uncertainty.longitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-1.uncertainty.longitude/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.longitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-2.value/option-1.uncertainty.longitude/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.longitude/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.uncertainty.longitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.uncertainty.longitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-2.value/option-1.uncertainty.longitude/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.longitude/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.uncertainty.longitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.uncertainty.longitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.kind
Type: string; required in containing object
const: "cartesian"
### observation.position/option-2.value/option-2.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.x
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.x.value
Type: number; required in containing object
### observation.position/option-2.value/option-2.x.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.x.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-2.x.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.x.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-2.value/option-2.x.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-2.value/option-2.x.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.x.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-2.value/option-2.x.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.x.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.x.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.x.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.x.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.x.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-2.value/option-2.x.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.x.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.x.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.x.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.x.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-2.value/option-2.x.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-2.value/option-2.x.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.x.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-2.value/option-2.x.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.x.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.x.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.x.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.y
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.y.value
Type: number; required in containing object
### observation.position/option-2.value/option-2.y.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.y.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-2.y.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.y.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-2.value/option-2.y.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-2.value/option-2.y.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.y.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-2.value/option-2.y.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.y.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.y.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.y.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.y.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.y.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-2.value/option-2.y.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.y.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.y.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.y.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.y.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-2.value/option-2.y.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-2.value/option-2.y.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.y.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-2.value/option-2.y.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.y.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.y.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.y.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.z
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.z.value
Type: number; required in containing object
### observation.position/option-2.value/option-2.z.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.z.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-2.z.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.z.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-2.value/option-2.z.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-2.value/option-2.z.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.z.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-2.value/option-2.z.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.z.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.z.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.z.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.z.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.z.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-2.value/option-2.z.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.z.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.z.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.z.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.z.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-2.value/option-2.z.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-2.value/option-2.z.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.z.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-2.value/option-2.z.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.z.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.z.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.z.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.selection
Type: object; optional
Extra fields: Not allowed in this object
### observation.position/option-2.selection.assertionRef
Type: string; required in containing object
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.selection.consideredAssertionRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.selection.consideredAssertionRefs[]
Type: string
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.selection.methodRef
Type: string; required in containing object
pattern: "^method:[^\\s:]+(?![\\s\\S])"
### observation.position/option-2.selection.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.selection.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.selection.evaluatedAt
Type: string; required in containing object
### observation.position/option-2.selection.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.position/option-2.selection.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.position/option-2.selection.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.position/option-2.selection.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.position/option-2.selection.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-3.state
Type: string; required in containing object
const: "unknown"
### observation.position/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### observation.position/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-4.state
Type: string; required in containing object
const: "redacted"
### observation.position/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.sources
Type: list of object; required in containing object
### observation.sources[]
Type: object
Extra fields: Not allowed in this object
### observation.sources[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.sources[].kind
Type: string; required in containing object
enum: ["document","testimony","instrument_data","other","unknown"]
### observation.sources[].access
Type: string; required in containing object
enum: ["public","restricted","withheld","unknown"]
### observation.sources[].title
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.sources[].uri
Type: string; optional
format: "uri"
### observation.sources[].digest
Type: object; optional
Extra fields: Not allowed in this object
### observation.sources[].digest.algorithm
Type: string; required in containing object
const: "sha256"
### observation.sources[].digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation.products
Type: list of choice; required in containing object
### observation.products[]
Type: choice
Choose: Exactly one of the alternatives below
### observation.products[]/option-1
Type: object
Extra fields: Not allowed in this object
### observation.products[]/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.products[]/option-1.format
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.products[]/option-1.access
Type: string; required in containing object
enum: ["public","restricted","withheld","unknown"]
### observation.products[]/option-1.uri
Type: string; optional
format: "uri"
### observation.products[]/option-1.digest
Type: object; optional
Extra fields: Not allowed in this object
### observation.products[]/option-1.digest.algorithm
Type: string; required in containing object
const: "sha256"
### observation.products[]/option-1.digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation.products[]/option-1.kind
Type: string; required in containing object
const: "raw"
### observation.products[]/option-1.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.products[]/option-1.sourceRefs[]
Type: string
pattern: "^(?:source):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.products[]/option-2
Type: object
Extra fields: Not allowed in this object
### observation.products[]/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.products[]/option-2.format
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.products[]/option-2.access
Type: string; required in containing object
enum: ["public","restricted","withheld","unknown"]
### observation.products[]/option-2.uri
Type: string; optional
format: "uri"
### observation.products[]/option-2.digest
Type: object; optional
Extra fields: Not allowed in this object
### observation.products[]/option-2.digest.algorithm
Type: string; required in containing object
const: "sha256"
### observation.products[]/option-2.digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation.products[]/option-2.kind
Type: string; required in containing object
const: "derived"
### observation.products[]/option-2.generatedBy
Type: string; required in containing object
pattern: "^(?:process):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.methods
Type: list of object; required in containing object
### observation.methods[]
Type: object
Extra fields: Not allowed in this object
### observation.methods[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.methods[].version
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.methods[].description
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.methods[].uri
Type: string; optional
format: "uri"
### observation.frames
Type: list of choice; required in containing object
### observation.frames[]
Type: choice
Choose: Exactly one of the alternatives below
### observation.frames[]/option-1
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.frames[]/option-1.kind
Type: string; required in containing object
const: "geodetic"
### observation.frames[]/option-1.definition
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.frames[]/option-1.definition/option-1
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.definition/option-1.state
Type: string; required in containing object
const: "identified"
### observation.frames[]/option-1.definition/option-1.authority
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.definition/option-1.code
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.definition/option-1.revision
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.definition/option-2
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.definition/option-2.state
Type: string; required in containing object
const: "described"
### observation.frames[]/option-1.definition/option-2.description
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.definition/option-3
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.definition/option-3.state
Type: string; required in containing object
const: "unknown"
### observation.frames[]/option-1.definition/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.angularUnit
Type: string; required in containing object
const: "deg"
### observation.frames[]/option-1.vertical
Type: object; optional
Extra fields: Not allowed in this object
### observation.frames[]/option-1.vertical.definition
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.frames[]/option-1.vertical.definition/option-1
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.vertical.definition/option-1.state
Type: string; required in containing object
const: "identified"
### observation.frames[]/option-1.vertical.definition/option-1.authority
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.vertical.definition/option-1.code
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.vertical.definition/option-1.revision
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.vertical.definition/option-2
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.vertical.definition/option-2.state
Type: string; required in containing object
const: "described"
### observation.frames[]/option-1.vertical.definition/option-2.description
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.vertical.definition/option-3
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.vertical.definition/option-3.state
Type: string; required in containing object
const: "unknown"
### observation.frames[]/option-1.vertical.definition/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.vertical.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-2
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.frames[]/option-2.kind
Type: string; required in containing object
const: "cartesian"
### observation.frames[]/option-2.definition
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.frames[]/option-2.definition/option-1
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-2.definition/option-1.state
Type: string; required in containing object
const: "identified"
### observation.frames[]/option-2.definition/option-1.authority
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-2.definition/option-1.code
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-2.definition/option-1.revision
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.frames[]/option-2.definition/option-2
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-2.definition/option-2.state
Type: string; required in containing object
const: "described"
### observation.frames[]/option-2.definition/option-2.description
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-2.definition/option-3
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-2.definition/option-3.state
Type: string; required in containing object
const: "unknown"
### observation.frames[]/option-2.definition/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions
Type: list of choice; required in containing object
### observation.assertions[]
Type: choice
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-1.field
Type: string; required in containing object
const: "eventTime"
### observation.assertions[]/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### observation.assertions[]/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### observation.assertions[]/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.assertions[]/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### observation.assertions[]/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.assertions[]/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### observation.assertions[]/option-1.value/option-1/option-3.value
Type: string; required in containing object
### observation.assertions[]/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.assertions[]/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.assertions[]/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.assertions[]/option-1.value/option-1/option-4.value
Type: string; required in containing object
### observation.assertions[]/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.assertions[]/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.assertions[]/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.assertions[]/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.assertions[]/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.assertions[]/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### observation.assertions[]/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### observation.assertions[]/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.assertions[]/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### observation.assertions[]/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.assertions[]/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### observation.assertions[]/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### observation.assertions[]/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.assertions[]/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.assertions[]/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.assertions[]/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### observation.assertions[]/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.assertions[]/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.assertions[]/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.assertions[]/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.assertions[]/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.assertions[]/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### observation.assertions[]/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.assertions[]/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### observation.assertions[]/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.assertions[]/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### observation.assertions[]/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### observation.assertions[]/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.assertions[]/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.assertions[]/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.assertions[]/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### observation.assertions[]/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.assertions[]/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.assertions[]/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.assertions[]/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.assertions[]/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.assertions[]/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### observation.assertions[]/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation.assertions[]/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### observation.assertions[]/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### observation.assertions[]/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### observation.assertions[]/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### observation.assertions[]/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### observation.assertions[]/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.field
Type: string; required in containing object
const: "position"
### observation.assertions[]/option-2.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.latitude
Type: number; required in containing object
minimum: -90
maximum: 90
### observation.assertions[]/option-2.value/option-1.longitude
Type: number; required in containing object
minimum: -180
maximum: 180
### observation.assertions[]/option-2.value/option-1.kind
Type: string; required in containing object
const: "geodetic"
### observation.assertions[]/option-2.value/option-1.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.altitude
Type: object; optional
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.altitude.value
Type: number; required in containing object
### observation.assertions[]/option-2.value/option-1.altitude.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.uncertainty
Type: object; optional
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.kind
Type: string; required in containing object
const: "cartesian"
### observation.assertions[]/option-2.value/option-2.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.x
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.x.value
Type: number; required in containing object
### observation.assertions[]/option-2.value/option-2.x.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.x.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.y
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.y.value
Type: number; required in containing object
### observation.assertions[]/option-2.value/option-2.y.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.y.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.z
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.z.value
Type: number; required in containing object
### observation.assertions[]/option-2.value/option-2.z.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.z.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### observation.assertions[]/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation.assertions[]/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### observation.assertions[]/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### observation.assertions[]/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### observation.assertions[]/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### observation.assertions[]/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### observation.assertions[]/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-3.field
Type: string; required in containing object
const: "measurement"
### observation.assertions[]/option-3.measurementId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-3.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.value.value
Type: number; required in containing object
### observation.assertions[]/option-3.value.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-3.value.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-3.value.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.value.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-3.value.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-3.value.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.value.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-3.value.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-3.value.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-3.value.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-3.value.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-3.value.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.value.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-3.value.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-3.value.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-3.value.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-3.value.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-3.value.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-3.value.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-3.value.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.value.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-3.value.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-3.value.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-3.value.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-3.value.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-3.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.provenance.sourceRef
Type: string; required in containing object
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-3.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### observation.assertions[]/option-3.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation.assertions[]/option-3.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-3.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### observation.assertions[]/option-3.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### observation.assertions[]/option-3.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### observation.assertions[]/option-3.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-3.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-3.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### observation.assertions[]/option-3.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### observation.assertions[]/option-3.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-3.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.measurements
Type: list of object; required in containing object
### observation.measurements[]
Type: object
Extra fields: Not allowed in this object
### observation.measurements[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].quantity
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].value
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.measurements[].value.value
Type: number; required in containing object
### observation.measurements[].value.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].value.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.measurements[].value.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.measurements[].value.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.measurements[].value.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.measurements[].value.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.measurements[].value.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.measurements[].value.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.measurements[].value.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].value.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.measurements[].value.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].value.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.measurements[].value.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.measurements[].value.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.measurements[].value.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].value.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.measurements[].value.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].value.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.measurements[].value.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.measurements[].value.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.measurements[].value.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.measurements[].value.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.measurements[].value.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].value.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.measurements[].value.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.measurements[].sourceRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].frameRef
Type: string; optional
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].selection
Type: object; optional
Extra fields: Not allowed in this object
### observation.measurements[].selection.assertionRef
Type: string; required in containing object
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].selection.consideredAssertionRefs
Type: list of string; required in containing object
minItems: 1
### observation.measurements[].selection.consideredAssertionRefs[]
Type: string
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].selection.methodRef
Type: string; required in containing object
pattern: "^method:[^\\s:]+(?![\\s\\S])"
### observation.measurements[].selection.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].selection.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].selection.evaluatedAt
Type: string; required in containing object
### observation.measurements[].selection.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.measurements[].selection.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.measurements[].selection.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.measurements[].selection.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.measurements[].selection.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.processing
Type: list of object; required in containing object
### observation.processing[]
Type: object
Extra fields: Not allowed in this object
### observation.processing[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.processing[].methodRef
Type: string; required in containing object
pattern: "^(?:method):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.processing[].methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.processing[].performedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.processing[].performedAt
Type: string; required in containing object
### observation.processing[].performedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.processing[].performedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.processing[].performedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.processing[].performedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.processing[].inputRefs
Type: list of string; required in containing object
minItems: 1
### observation.processing[].inputRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.processing[].outputRefs
Type: list of string; required in containing object
minItems: 1
### observation.processing[].outputRefs[]
Type: string
pattern: "^(?:product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.extensions
Type: object; optional
### observation.extensions/keys
Type: string
pattern: "^[a-z][a-z0-9_-]*(?:\\.[a-z0-9_-]+)+(?![\\s\\S])"
### observation.extensions/value
Type: JSON value
Reference: #/$defs/__schema29
Value: Arbitrary JSON; extension contents are not semantically checked by the core.
### claims
Type: list of choice; required in containing object
Attributable statements and assessments, including context entity and field subjects.
### claims[]
Type: choice
Choose: At least one of the alternatives below
### claims[]/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.recordedAt
Type: string; required in containing object
### claims[]/option-1.recordedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-1.recordedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-1.recordedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-1.recordedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-1.topic
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-1.subject
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-1.subject/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-1.kind
Type: string; required in containing object
const: "observation"
### claims[]/option-1.subject/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.kind
Type: string; required in containing object
const: "context"
### claims[]/option-1.subject/option-2.reference
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### claims[]/option-1.subject/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-1.subject/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### claims[]/option-1.subject/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### claims[]/option-1.subject/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "reported_object"
### claims[]/option-1.subject/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-2.field
Type: string; optional
enum: ["shape","sizeDescription","color","secondaryColors","luminosity","sound","soundDescription","surfaceDetails","formation","structuralFeatures","countDescription","speedDescription","altitudeDescription","flightPath","maneuvers","maneuverDescriptions","trajectoryDescription","radarContactReported","infraredSignatureReported"]
### claims[]/option-1.subject/option-2.reference.target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-3.kind
Type: string; required in containing object
const: "place"
### claims[]/option-1.subject/option-2.reference.target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-3.field
Type: string; optional
enum: ["name","country","countryCode","region","city","address","position","coordinatePrecision","coordinatesApproximate","elevationSource","siteType","secondarySiteTypes","terrain","airspaceClass","proximity","infrastructureSensitivity","sensitivity"]
### claims[]/option-1.subject/option-2.reference.target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-4.kind
Type: string; required in containing object
const: "platform"
### claims[]/option-1.subject/option-2.reference.target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-4.field
Type: string; optional
enum: ["role","placeId","name","type","designation","callsign","flightNumber","squadron","mission","operator","radarContact","weaponsSystemEngaged","interceptAttempted"]
### claims[]/option-1.subject/option-2.reference.target/option-5
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-5.kind
Type: string; required in containing object
const: "environment"
### claims[]/option-1.subject/option-2.reference.target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-5.field
Type: string; optional
enum: ["placeId","platformId","temporalId","observedAt","weather","visibility","cloudCover","windDescription","celestialConditions","moonPhase","precipitation"]
### claims[]/option-1.subject/option-2.reference.target/option-6
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-6.kind
Type: string; required in containing object
const: "temporal"
### claims[]/option-1.subject/option-2.reference.target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-6.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### claims[]/option-1.subject/option-2.reference.target/option-7
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-7.kind
Type: string; required in containing object
const: "collection"
### claims[]/option-1.subject/option-2.reference.target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-7.field
Type: string; optional
enum: ["sensorType","detectionMethod","productRefs","acquisitionIds","retentionStatus","rawDataAvailable","anomalies","correlationDescription","alignmentDescription","notes"]
### claims[]/option-1.subject/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.kind
Type: string; required in containing object
const: "measurement"
### claims[]/option-1.subject/option-3.measurementId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.supersedes
Type: list of string; optional
minItems: 1
### claims[]/option-1.supersedes[]
Type: string
pattern: "^claim:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.kind
Type: string; required in containing object
const: "source_assertion"
### claims[]/option-1.text
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-1.reportedLevel
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### claims[]/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### claims[]/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### claims[]/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### claims[]/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### claims[]/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### claims[]/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### claims[]/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### claims[]/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### claims[]/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### claims[]/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.recordedAt
Type: string; required in containing object
### claims[]/option-2.recordedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-2.recordedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-2.recordedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-2.recordedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-2.topic
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-2.subject
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-2.subject/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-1.kind
Type: string; required in containing object
const: "observation"
### claims[]/option-2.subject/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.kind
Type: string; required in containing object
const: "context"
### claims[]/option-2.subject/option-2.reference
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### claims[]/option-2.subject/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-2.subject/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### claims[]/option-2.subject/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### claims[]/option-2.subject/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "reported_object"
### claims[]/option-2.subject/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-2.field
Type: string; optional
enum: ["shape","sizeDescription","color","secondaryColors","luminosity","sound","soundDescription","surfaceDetails","formation","structuralFeatures","countDescription","speedDescription","altitudeDescription","flightPath","maneuvers","maneuverDescriptions","trajectoryDescription","radarContactReported","infraredSignatureReported"]
### claims[]/option-2.subject/option-2.reference.target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-3.kind
Type: string; required in containing object
const: "place"
### claims[]/option-2.subject/option-2.reference.target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-3.field
Type: string; optional
enum: ["name","country","countryCode","region","city","address","position","coordinatePrecision","coordinatesApproximate","elevationSource","siteType","secondarySiteTypes","terrain","airspaceClass","proximity","infrastructureSensitivity","sensitivity"]
### claims[]/option-2.subject/option-2.reference.target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-4.kind
Type: string; required in containing object
const: "platform"
### claims[]/option-2.subject/option-2.reference.target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-4.field
Type: string; optional
enum: ["role","placeId","name","type","designation","callsign","flightNumber","squadron","mission","operator","radarContact","weaponsSystemEngaged","interceptAttempted"]
### claims[]/option-2.subject/option-2.reference.target/option-5
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-5.kind
Type: string; required in containing object
const: "environment"
### claims[]/option-2.subject/option-2.reference.target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-5.field
Type: string; optional
enum: ["placeId","platformId","temporalId","observedAt","weather","visibility","cloudCover","windDescription","celestialConditions","moonPhase","precipitation"]
### claims[]/option-2.subject/option-2.reference.target/option-6
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-6.kind
Type: string; required in containing object
const: "temporal"
### claims[]/option-2.subject/option-2.reference.target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-6.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### claims[]/option-2.subject/option-2.reference.target/option-7
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-7.kind
Type: string; required in containing object
const: "collection"
### claims[]/option-2.subject/option-2.reference.target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-7.field
Type: string; optional
enum: ["sensorType","detectionMethod","productRefs","acquisitionIds","retentionStatus","rawDataAvailable","anomalies","correlationDescription","alignmentDescription","notes"]
### claims[]/option-2.subject/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.kind
Type: string; required in containing object
const: "measurement"
### claims[]/option-2.subject/option-3.measurementId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.supersedes
Type: list of string; optional
minItems: 1
### claims[]/option-2.supersedes[]
Type: string
pattern: "^claim:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.kind
Type: string; required in containing object
const: "assessment"
### claims[]/option-2.inputRefs
Type: list of string; required in containing object
### claims[]/option-2.inputRefs[]
Type: string
pattern: "^(?:claim|source|product|assertion|measurement):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs
Type: list of object; optional
### claims[]/option-2.contextInputRefs[]
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### claims[]/option-2.contextInputRefs[].document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-2.contextInputRefs[].target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].target/option-1.kind
Type: string; required in containing object
const: "event"
### claims[]/option-2.contextInputRefs[].target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### claims[]/option-2.contextInputRefs[].target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].target/option-2.kind
Type: string; required in containing object
const: "reported_object"
### claims[]/option-2.contextInputRefs[].target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target/option-2.field
Type: string; optional
enum: ["shape","sizeDescription","color","secondaryColors","luminosity","sound","soundDescription","surfaceDetails","formation","structuralFeatures","countDescription","speedDescription","altitudeDescription","flightPath","maneuvers","maneuverDescriptions","trajectoryDescription","radarContactReported","infraredSignatureReported"]
### claims[]/option-2.contextInputRefs[].target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].target/option-3.kind
Type: string; required in containing object
const: "place"
### claims[]/option-2.contextInputRefs[].target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target/option-3.field
Type: string; optional
enum: ["name","country","countryCode","region","city","address","position","coordinatePrecision","coordinatesApproximate","elevationSource","siteType","secondarySiteTypes","terrain","airspaceClass","proximity","infrastructureSensitivity","sensitivity"]
### claims[]/option-2.contextInputRefs[].target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].target/option-4.kind
Type: string; required in containing object
const: "platform"
### claims[]/option-2.contextInputRefs[].target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target/option-4.field
Type: string; optional
enum: ["role","placeId","name","type","designation","callsign","flightNumber","squadron","mission","operator","radarContact","weaponsSystemEngaged","interceptAttempted"]
### claims[]/option-2.contextInputRefs[].target/option-5
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].target/option-5.kind
Type: string; required in containing object
const: "environment"
### claims[]/option-2.contextInputRefs[].target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target/option-5.field
Type: string; optional
enum: ["placeId","platformId","temporalId","observedAt","weather","visibility","cloudCover","windDescription","celestialConditions","moonPhase","precipitation"]
### claims[]/option-2.contextInputRefs[].target/option-6
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].target/option-6.kind
Type: string; required in containing object
const: "temporal"
### claims[]/option-2.contextInputRefs[].target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target/option-6.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### claims[]/option-2.contextInputRefs[].target/option-7
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].target/option-7.kind
Type: string; required in containing object
const: "collection"
### claims[]/option-2.contextInputRefs[].target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target/option-7.field
Type: string; optional
enum: ["sensorType","detectionMethod","productRefs","acquisitionIds","retentionStatus","rawDataAvailable","anomalies","correlationDescription","alignmentDescription","notes"]
### claims[]/option-2.contextInputRefs[].assertionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-2.status
Type: string; required in containing object
const: "unassessed"
### claims[]/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.recordedAt
Type: string; required in containing object
### claims[]/option-3.recordedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-3.recordedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-3.recordedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-3.recordedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-3.topic
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-3.subject
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-3.subject/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-1.kind
Type: string; required in containing object
const: "observation"
### claims[]/option-3.subject/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.kind
Type: string; required in containing object
const: "context"
### claims[]/option-3.subject/option-2.reference
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### claims[]/option-3.subject/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-3.subject/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### claims[]/option-3.subject/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### claims[]/option-3.subject/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "reported_object"
### claims[]/option-3.subject/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-2.field
Type: string; optional
enum: ["shape","sizeDescription","color","secondaryColors","luminosity","sound","soundDescription","surfaceDetails","formation","structuralFeatures","countDescription","speedDescription","altitudeDescription","flightPath","maneuvers","maneuverDescriptions","trajectoryDescription","radarContactReported","infraredSignatureReported"]
### claims[]/option-3.subject/option-2.reference.target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-3.kind
Type: string; required in containing object
const: "place"
### claims[]/option-3.subject/option-2.reference.target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-3.field
Type: string; optional
enum: ["name","country","countryCode","region","city","address","position","coordinatePrecision","coordinatesApproximate","elevationSource","siteType","secondarySiteTypes","terrain","airspaceClass","proximity","infrastructureSensitivity","sensitivity"]
### claims[]/option-3.subject/option-2.reference.target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-4.kind
Type: string; required in containing object
const: "platform"
### claims[]/option-3.subject/option-2.reference.target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-4.field
Type: string; optional
enum: ["role","placeId","name","type","designation","callsign","flightNumber","squadron","mission","operator","radarContact","weaponsSystemEngaged","interceptAttempted"]
### claims[]/option-3.subject/option-2.reference.target/option-5
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-5.kind
Type: string; required in containing object
const: "environment"
### claims[]/option-3.subject/option-2.reference.target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-5.field
Type: string; optional
enum: ["placeId","platformId","temporalId","observedAt","weather","visibility","cloudCover","windDescription","celestialConditions","moonPhase","precipitation"]
### claims[]/option-3.subject/option-2.reference.target/option-6
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-6.kind
Type: string; required in containing object
const: "temporal"
### claims[]/option-3.subject/option-2.reference.target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-6.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### claims[]/option-3.subject/option-2.reference.target/option-7
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-7.kind
Type: string; required in containing object
const: "collection"
### claims[]/option-3.subject/option-2.reference.target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-7.field
Type: string; optional
enum: ["sensorType","detectionMethod","productRefs","acquisitionIds","retentionStatus","rawDataAvailable","anomalies","correlationDescription","alignmentDescription","notes"]
### claims[]/option-3.subject/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.kind
Type: string; required in containing object
const: "measurement"
### claims[]/option-3.subject/option-3.measurementId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.supersedes
Type: list of string; optional
minItems: 1
### claims[]/option-3.supersedes[]
Type: string
pattern: "^claim:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.kind
Type: string; required in containing object
const: "assessment"
### claims[]/option-3.inputRefs
Type: list of string; required in containing object
### claims[]/option-3.inputRefs[]
Type: string
pattern: "^(?:claim|source|product|assertion|measurement):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs
Type: list of object; optional
### claims[]/option-3.contextInputRefs[]
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### claims[]/option-3.contextInputRefs[].document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-3.contextInputRefs[].target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].target/option-1.kind
Type: string; required in containing object
const: "event"
### claims[]/option-3.contextInputRefs[].target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### claims[]/option-3.contextInputRefs[].target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].target/option-2.kind
Type: string; required in containing object
const: "reported_object"
### claims[]/option-3.contextInputRefs[].target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target/option-2.field
Type: string; optional
enum: ["shape","sizeDescription","color","secondaryColors","luminosity","sound","soundDescription","surfaceDetails","formation","structuralFeatures","countDescription","speedDescription","altitudeDescription","flightPath","maneuvers","maneuverDescriptions","trajectoryDescription","radarContactReported","infraredSignatureReported"]
### claims[]/option-3.contextInputRefs[].target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].target/option-3.kind
Type: string; required in containing object
const: "place"
### claims[]/option-3.contextInputRefs[].target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target/option-3.field
Type: string; optional
enum: ["name","country","countryCode","region","city","address","position","coordinatePrecision","coordinatesApproximate","elevationSource","siteType","secondarySiteTypes","terrain","airspaceClass","proximity","infrastructureSensitivity","sensitivity"]
### claims[]/option-3.contextInputRefs[].target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].target/option-4.kind
Type: string; required in containing object
const: "platform"
### claims[]/option-3.contextInputRefs[].target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target/option-4.field
Type: string; optional
enum: ["role","placeId","name","type","designation","callsign","flightNumber","squadron","mission","operator","radarContact","weaponsSystemEngaged","interceptAttempted"]
### claims[]/option-3.contextInputRefs[].target/option-5
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].target/option-5.kind
Type: string; required in containing object
const: "environment"
### claims[]/option-3.contextInputRefs[].target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target/option-5.field
Type: string; optional
enum: ["placeId","platformId","temporalId","observedAt","weather","visibility","cloudCover","windDescription","celestialConditions","moonPhase","precipitation"]
### claims[]/option-3.contextInputRefs[].target/option-6
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].target/option-6.kind
Type: string; required in containing object
const: "temporal"
### claims[]/option-3.contextInputRefs[].target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target/option-6.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### claims[]/option-3.contextInputRefs[].target/option-7
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].target/option-7.kind
Type: string; required in containing object
const: "collection"
### claims[]/option-3.contextInputRefs[].target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target/option-7.field
Type: string; optional
enum: ["sensorType","detectionMethod","productRefs","acquisitionIds","retentionStatus","rawDataAvailable","anomalies","correlationDescription","alignmentDescription","notes"]
### claims[]/option-3.contextInputRefs[].assertionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-3.status
Type: string; required in containing object
const: "assessed"
### claims[]/option-3.outcome
Type: string; required in containing object
enum: ["reported","confirmed","absent","inconclusive"]
### claims[]/option-3.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-3.evaluatedAt
Type: string; required in containing object
### claims[]/option-3.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-3.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-3.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-3.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-3.methodRef
Type: string; required in containing object
pattern: "^method:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-3.confidence
Type: number; optional
minimum: 0
maximum: 1
### extensions
Type: object; optional
Namespaced extra JSON; its contents do not complete typed domain coverage.
### extensions/keys
Type: string
pattern: "^[a-z][a-z0-9_-]*(?:\\.[a-z0-9_-]+)+(?![\\s\\S])"
### extensions/value
Type: JSON value
Reference: #/$defs/__schema29
Value: Arbitrary JSON; extension contents are not semantically checked by the core.
# Edition and custody fields (/v2/docs/reference/documents)
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
## Editions, artifacts and custody
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
Sourced edition metadata, document events, digital custody actions and scoped identifier checks.
Schema: urn:disclosureos:experimental:research-entities:0.2.0
Export: @disclosureos/records/experimental/v2/entities/schema/0.2.0
### kind
Type: string; required in containing object
Identifies the document kind.
const: "research_entities"
### schemaVersion
Type: string; required in containing object
The explicit document contract version.
const: "0.2.0"
### id
Type: string; required in containing object
A scoped document identity.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observationRef
Type: object; required in containing object
Exact observation snapshot described by these declarations.
Extra fields: Not allowed in this object
### observationRef.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observationRef.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation:0.1.0"
### observationRef.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### contextRefs
Type: list of object; required in containing object
Exact contextual snapshots used by this document.
### contextRefs[]
Type: object
Extra fields: Not allowed in this object
### contextRefs[].documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### contextRefs[].schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### contextRefs[].sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### recordedAt
Type: string; required in containing object
When these declarations were assembled, separate from release, creation and review dates.
### recordedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### recordedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### recordedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### recordedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### recordedBy
Type: string; required in containing object
Who assembled the declarations.
minLength: 1
pattern: "\\S"
### entities
Type: list of choice; required in containing object
Typed declarations for particular editions, artifacts, custody actions and identifiers, alongside witness and account detail.
minItems: 1
### entities[]
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.kind
Type: string; required in containing object
const: "witness"
### entities[]/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity
Type: list of object; optional
Sourced public identity assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.publicIdentity[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.publicIdentity[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.publicIdentity[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.publicIdentity[].content/option-1.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.publicIdentity[].content/option-1.value/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-1.value/option-1.kind
Type: string; required in containing object
const: "public_name"
### entities[]/option-1.fields.publicIdentity[].content/option-1.value/option-1.display
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "pseudonym"
### entities[]/option-1.fields.publicIdentity[].content/option-1.value/option-2.display
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-1.value/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-1.value/option-3.kind
Type: string; required in containing object
const: "withheld"
### entities[]/option-1.fields.publicIdentity[].content/option-1.value/option-3.display
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.publicIdentity[].content/option-2.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.publicIdentity[].content/option-2.value/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-2.value/option-1.kind
Type: string; required in containing object
const: "public_name"
### entities[]/option-1.fields.publicIdentity[].content/option-2.value/option-1.display
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "pseudonym"
### entities[]/option-1.fields.publicIdentity[].content/option-2.value/option-2.display
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-2.value/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-2.value/option-3.kind
Type: string; required in containing object
const: "withheld"
### entities[]/option-1.fields.publicIdentity[].content/option-2.value/option-3.display
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.publicIdentity[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.publicIdentity[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.publicIdentity[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.publicIdentity[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous
Type: list of object; optional
Sourced anonymous assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.anonymous[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.anonymous[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.anonymous[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.anonymous[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-1.fields.anonymous[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.anonymous[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-1.fields.anonymous[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.anonymous[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.anonymous[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.anonymous[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.anonymous[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified
Type: list of object; optional
Sourced willing to be identified assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.willingToBeIdentified[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.willingToBeIdentified[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.willingToBeIdentified[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category
Type: list of object; optional
Sourced category assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.category[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.category[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.category[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.category[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.value
Type: string; required in containing object
Professional/role category of a witness.
enum: ["military_pilot","military_aircrew","military_ground","military_naval","military_radar_operator","military_other","commercial_pilot","commercial_aircrew","private_pilot","air_traffic_controller","aviation_other","government_official","elected_official","intelligence_officer","law_enforcement","scientist","astronomer","meteorologist","engineer","medical_professional","maritime","civilian","civilian_group","anonymous","unknown"]
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.category[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.category[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.category[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.category[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.category[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.category[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.category[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.category[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.category[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.category[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.value
Type: string; required in containing object
Professional/role category of a witness.
enum: ["military_pilot","military_aircrew","military_ground","military_naval","military_radar_operator","military_other","commercial_pilot","commercial_aircrew","private_pilot","air_traffic_controller","aviation_other","government_official","elected_official","intelligence_officer","law_enforcement","scientist","astronomer","meteorologist","engineer","medical_professional","maritime","civilian","civilian_group","anonymous","unknown"]
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.category[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.category[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.category[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.category[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.category[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.category[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.category[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.category[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.category[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.category[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.category[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.category[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.category[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.category[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.category[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.category[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.category[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.category[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.category[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.category[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.category[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.category[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role
Type: list of object; optional
Sourced role assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.role[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.role[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.role[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.role[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.role[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.role[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.role[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.role[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.role[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.role[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.role[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.role[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.role[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.role[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.role[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.role[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.role[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.role[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.role[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.role[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.role[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.role[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.role[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.role[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.role[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.role[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.role[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.role[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.role[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.role[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.role[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.role[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.role[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.role[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.role[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.role[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization
Type: list of object; optional
Sourced organization assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.organization[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.organization[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.organization[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.organization[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.organization[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.organization[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.organization[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.organization[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.organization[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.organization[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears
Type: list of object; optional
Sourced experience years assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.experienceYears[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.experienceYears[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.value
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.experienceYears[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.value
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.experienceYears[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.experienceYears[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.experienceYears[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.experienceYears[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance
Type: list of object; optional
Sourced security clearance assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.securityClearance[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.securityClearance[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.value
Type: string; required in containing object
Security clearance level held by a witness.
enum: ["none","confidential","secret","top_secret","sci","unknown"]
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.securityClearance[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.value
Type: string; required in containing object
Security clearance level held by a witness.
enum: ["none","confidential","secret","top_secret","sci","unknown"]
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.securityClearance[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.securityClearance[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.securityClearance[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.securityClearance[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver
Type: list of object; optional
Sourced is professional observer assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.isProfessionalObserver[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.isProfessionalObserver[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience
Type: list of object; optional
Sourced has aviation experience assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.hasAviationExperience[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasAviationExperience[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.hasAviationExperience[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.hasAviationExperience[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience
Type: list of object; optional
Sourced has military experience assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.hasMilitaryExperience[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground
Type: list of object; optional
Sourced has scientific background assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.hasScientificBackground[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasScientificBackground[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.hasScientificBackground[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.hasScientificBackground[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge
Type: list of object; optional
Sourced has prior uapknowledge assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.hasPriorUAPKnowledge[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior
Type: list of object; optional
Sourced was skeptic prior assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.wasSkepticPrior[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.wasSkepticPrior[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description
Type: list of object; optional
Sourced description assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.description[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.description[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.description[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.description[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.description[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.description[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.description[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.description[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.description[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.description[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.description[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.description[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.description[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.description[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.description[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.description[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.description[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.description[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.description[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.description[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.description[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.kind
Type: string; required in containing object
const: "account"
### entities[]/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds
Type: list of object; optional
Sourced speaker witness ids assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.speakerWitnessIds[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.speakerWitnessIds[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.value[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.value[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.speakerWitnessIds[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder
Type: list of object; optional
Sourced recorder assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.recorder[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.recorder[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.recorder[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.recorder[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.recorder[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.recorder[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.recorder[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.recorder[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.recorder[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.recorder[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.recorder[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.recorder[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.recorder[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.recorder[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.recorder[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.recorder[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.recorder[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.recorder[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context
Type: list of object; optional
Sourced context assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.context[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.context[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.context[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.context[].content/option-1.value
Type: string; required in containing object
The setting in which testimony was given.
enum: ["sworn_affidavit","congressional_testimony","deposition","official_interview","written_statement","recorded_interview","informal_account","anonymous_tip","whistleblower_disclosure"]
### entities[]/option-2.fields.context[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.context[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.context[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.context[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.context[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.context[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.context[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.context[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.context[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.context[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.context[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.context[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.context[].content/option-2.value
Type: string; required in containing object
The setting in which testimony was given.
enum: ["sworn_affidavit","congressional_testimony","deposition","official_interview","written_statement","recorded_interview","informal_account","anonymous_tip","whistleblower_disclosure"]
### entities[]/option-2.fields.context[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.context[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.context[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.context[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.context[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.context[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.context[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.context[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.context[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.context[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.context[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.context[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.context[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.context[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.context[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.context[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.context[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.context[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.context[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.context[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.context[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.context[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.context[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.context[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.context[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.context[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.context[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime
Type: list of object; optional
Sourced recorded time assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.recordedTime[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.recordedTime[].content/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.recordedTime[].content/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-2.fields.recordedTime[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.recordedTime[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.recordedTime[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.recordedTime[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.recordedTime[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty
Type: list of object; optional
Sourced date certainty assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.dateCertainty[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.dateCertainty[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.dateCertainty[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.dateCertainty[].content/option-1.value
Type: string; required in containing object
enum: ["exact","approximate","estimated","unknown"]
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.dateCertainty[].content/option-2.value
Type: string; required in containing object
enum: ["exact","approximate","estimated","unknown"]
### entities[]/option-2.fields.dateCertainty[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.dateCertainty[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.dateCertainty[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.dateCertainty[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.dateCertainty[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext
Type: list of object; optional
Sourced event context assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.eventContext[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.eventContext[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.eventContext[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.value.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.value.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.value.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-2.fields.eventContext[].content/option-1.value.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-2.kind
Type: string; required in containing object
const: "reported_object"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-2.field
Type: string; optional
enum: ["shape","sizeDescription","color","secondaryColors","luminosity","sound","soundDescription","surfaceDetails","formation","structuralFeatures","countDescription","speedDescription","altitudeDescription","flightPath","maneuvers","maneuverDescriptions","trajectoryDescription","radarContactReported","infraredSignatureReported"]
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-3.kind
Type: string; required in containing object
const: "place"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-3.field
Type: string; optional
enum: ["name","country","countryCode","region","city","address","position","coordinatePrecision","coordinatesApproximate","elevationSource","siteType","secondarySiteTypes","terrain","airspaceClass","proximity","infrastructureSensitivity","sensitivity"]
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-4.kind
Type: string; required in containing object
const: "platform"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-4.field
Type: string; optional
enum: ["role","placeId","name","type","designation","callsign","flightNumber","squadron","mission","operator","radarContact","weaponsSystemEngaged","interceptAttempted"]
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-5.kind
Type: string; required in containing object
const: "environment"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-5.field
Type: string; optional
enum: ["placeId","platformId","temporalId","observedAt","weather","visibility","cloudCover","windDescription","celestialConditions","moonPhase","precipitation"]
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-6
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-6.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-6.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-7
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-7.kind
Type: string; required in containing object
const: "collection"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-7.field
Type: string; optional
enum: ["sensorType","detectionMethod","productRefs","acquisitionIds","retentionStatus","rawDataAvailable","anomalies","correlationDescription","alignmentDescription","notes"]
### entities[]/option-2.fields.eventContext[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.eventContext[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.value.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.value.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.value.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-2.fields.eventContext[].content/option-2.value.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-2.kind
Type: string; required in containing object
const: "reported_object"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-2.field
Type: string; optional
enum: ["shape","sizeDescription","color","secondaryColors","luminosity","sound","soundDescription","surfaceDetails","formation","structuralFeatures","countDescription","speedDescription","altitudeDescription","flightPath","maneuvers","maneuverDescriptions","trajectoryDescription","radarContactReported","infraredSignatureReported"]
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-3.kind
Type: string; required in containing object
const: "place"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-3.field
Type: string; optional
enum: ["name","country","countryCode","region","city","address","position","coordinatePrecision","coordinatesApproximate","elevationSource","siteType","secondarySiteTypes","terrain","airspaceClass","proximity","infrastructureSensitivity","sensitivity"]
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-4.kind
Type: string; required in containing object
const: "platform"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-4.field
Type: string; optional
enum: ["role","placeId","name","type","designation","callsign","flightNumber","squadron","mission","operator","radarContact","weaponsSystemEngaged","interceptAttempted"]
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-5.kind
Type: string; required in containing object
const: "environment"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-5.field
Type: string; optional
enum: ["placeId","platformId","temporalId","observedAt","weather","visibility","cloudCover","windDescription","celestialConditions","moonPhase","precipitation"]
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-6
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-6.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-6.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-7
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-7.kind
Type: string; required in containing object
const: "collection"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-7.field
Type: string; optional
enum: ["sensorType","detectionMethod","productRefs","acquisitionIds","retentionStatus","rawDataAvailable","anomalies","correlationDescription","alignmentDescription","notes"]
### entities[]/option-2.fields.eventContext[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.eventContext[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.eventContext[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.eventContext[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.eventContext[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content
Type: list of object; optional
Sourced content assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.content[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.content[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.content[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.content[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.content[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.content[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.content[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.content[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.content[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.content[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.content[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.content[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.content[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.content[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.content[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.content[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.content[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.content[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.content[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.content[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.content[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.content[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.content[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.content[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.content[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.content[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.content[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.content[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.content[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.content[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.content[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.content[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.content[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.content[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.content[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.content[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.content[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.content[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.content[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.content[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.content[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.content[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary
Type: list of object; optional
Sourced summary assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.summary[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.summary[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.summary[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.summary[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-1.value.text
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-1.value.summarizedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.summary[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.summary[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.summary[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.summary[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-2.value.text
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-2.value.summarizedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.summary[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.summary[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.summary[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.summary[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.summary[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.summary[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.summary[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.summary[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.summary[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.summary[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument
Type: list of object; optional
Sourced source document assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.sourceDocument[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.sourceDocument[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.sourceDocument[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.sourceDocument[].content/option-1.value
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.sourceDocument[].content/option-2.value
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.sourceDocument[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.sourceDocument[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.sourceDocument[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.sourceDocument[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.sourceDocument[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable
Type: list of object; optional
Sourced interview available assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.interviewAvailable[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.interviewAvailable[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.interviewAvailable[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.interviewAvailable[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-2.fields.interviewAvailable[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.interviewAvailable[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.interviewAvailable[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.interviewAvailable[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.interviewAvailable[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable
Type: list of object; optional
Sourced written report available assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.writtenReportAvailable[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.writtenReportAvailable[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.writtenReportAvailable[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath
Type: list of object; optional
Sourced under oath assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.underOath[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.underOath[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.underOath[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.underOath[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-2.fields.underOath[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.underOath[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.underOath[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.underOath[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.underOath[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-2.fields.underOath[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.underOath[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.underOath[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.underOath[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.underOath[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.underOath[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.underOath[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.underOath[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.underOath[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.underOath[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.underOath[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus
Type: list of object; optional
Sourced custody status assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.custodyStatus[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.custodyStatus[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.custodyStatus[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.custodyStatus[].content/option-1.value
Type: string; required in containing object
Custody status of an evidence item.
enum: ["verified","partial","unverified","government_held","private_held","lost","destroyed","classified","unknown"]
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.custodyStatus[].content/option-2.value
Type: string; required in containing object
Custody status of an evidence item.
enum: ["verified","partial","unverified","government_held","private_held","lost","destroyed","classified","unknown"]
### entities[]/option-2.fields.custodyStatus[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.custodyStatus[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.custodyStatus[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.custodyStatus[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.custodyStatus[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs
Type: list of object; optional
Sourced support refs assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.supportRefs[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.supportRefs[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.supportRefs[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.supportRefs[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-2.fields.supportRefs[].content/option-1.value[]
Type: string
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.supportRefs[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-2.fields.supportRefs[].content/option-2.value[]
Type: string
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.supportRefs[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.supportRefs[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.supportRefs[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.supportRefs[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.supportRefs[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.kind
Type: string; required in containing object
const: "procedure"
### entities[]/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType
Type: list of object; optional
Sourced procedure type assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-3.fields.procedureType[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.procedureType[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.procedureType[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.procedureType[].content/option-1.value
Type: string; required in containing object
const: "polygraph"
### entities[]/option-3.fields.procedureType[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.procedureType[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.procedureType[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.procedureType[].content/option-2.value
Type: string; required in containing object
const: "polygraph"
### entities[]/option-3.fields.procedureType[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.procedureType[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.procedureType[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.procedureType[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.procedureType[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.procedureType[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.procedureType[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.procedureType[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.procedureType[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.procedureType[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId
Type: list of object; optional
Sourced witness id assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-3.fields.witnessId[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.witnessId[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.witnessId[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.witnessId[].content/option-1.value
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.witnessId[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.witnessId[].content/option-2.value
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.witnessId[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.witnessId[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.witnessId[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.witnessId[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.witnessId[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId
Type: list of object; optional
Sourced account id assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-3.fields.accountId[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.accountId[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.accountId[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.accountId[].content/option-1.value
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.accountId[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.accountId[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.accountId[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.accountId[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.accountId[].content/option-2.value
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.accountId[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.accountId[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.accountId[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.accountId[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.accountId[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.accountId[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.accountId[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.accountId[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.accountId[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.accountId[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.accountId[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered
Type: list of object; optional
Sourced administered assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-3.fields.administered[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.administered[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.administered[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.administered[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-3.fields.administered[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.administered[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.administered[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.administered[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.administered[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-3.fields.administered[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.administered[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.administered[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.administered[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.administered[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.administered[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.administered[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.administered[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.administered[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.administered[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.administered[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed
Type: list of object; optional
Sourced passed assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-3.fields.passed[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.passed[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.passed[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.passed[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-3.fields.passed[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.passed[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.passed[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.passed[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.passed[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-3.fields.passed[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.passed[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.passed[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.passed[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.passed[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.passed[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.passed[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.passed[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.passed[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.passed[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.passed[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt
Type: list of object; optional
Sourced performed at assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-3.fields.performedAt[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.performedAt[].content/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-3.fields.performedAt[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.performedAt[].content/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-3.fields.performedAt[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.performedAt[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.performedAt[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.performedAt[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.performedAt[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context
Type: list of object; optional
Sourced context assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-3.fields.context[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.context[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.context[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.context[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.context[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.context[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.context[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.context[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.context[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.context[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.context[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.context[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.context[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.context[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.context[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.context[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.context[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.context[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.context[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.context[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.context[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.context[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.context[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.context[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.context[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.context[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.context[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.context[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.context[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.context[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.context[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.context[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.context[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.context[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.context[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.context[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.context[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.context[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.context[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.context[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.context[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.context[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument
Type: list of object; optional
Sourced source document assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-3.fields.sourceDocument[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.sourceDocument[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.sourceDocument[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.sourceDocument[].content/option-1.value
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.sourceDocument[].content/option-2.value
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.sourceDocument[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.sourceDocument[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.sourceDocument[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.sourceDocument[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.sourceDocument[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.kind
Type: string; required in containing object
const: "witness_group"
### entities[]/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds
Type: list of object; optional
Sourced witness ids assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-4.fields.witnessIds[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.witnessIds[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.witnessIds[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.witnessIds[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-4.fields.witnessIds[].content/option-1.value[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.witnessIds[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.witnessIds[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.witnessIds[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-4.fields.witnessIds[].content/option-2.value[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.witnessIds[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.witnessIds[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.witnessIds[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.witnessIds[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.witnessIds[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.witnessIds[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.witnessIds[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.witnessIds[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount
Type: list of object; optional
Sourced reported count assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-4.fields.reportedCount[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.reportedCount[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.reportedCount[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.reportedCount[].content/option-1.value
Type: integer; required in containing object
minimum: 0
maximum: 9007199254740991
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.reportedCount[].content/option-2.value
Type: integer; required in containing object
minimum: 0
maximum: 9007199254740991
### entities[]/option-4.fields.reportedCount[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.reportedCount[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.reportedCount[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.reportedCount[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.reportedCount[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories
Type: list of object; optional
Sourced categories assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-4.fields.categories[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.categories[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.categories[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.categories[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-4.fields.categories[].content/option-1.value[]
Type: string
Professional/role category of a witness.
enum: ["military_pilot","military_aircrew","military_ground","military_naval","military_radar_operator","military_other","commercial_pilot","commercial_aircrew","private_pilot","air_traffic_controller","aviation_other","government_official","elected_official","intelligence_officer","law_enforcement","scientist","astronomer","meteorologist","engineer","medical_professional","maritime","civilian","civilian_group","anonymous","unknown"]
### entities[]/option-4.fields.categories[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.categories[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.categories[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.categories[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.categories[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-4.fields.categories[].content/option-2.value[]
Type: string
Professional/role category of a witness.
enum: ["military_pilot","military_aircrew","military_ground","military_naval","military_radar_operator","military_other","commercial_pilot","commercial_aircrew","private_pilot","air_traffic_controller","aviation_other","government_official","elected_official","intelligence_officer","law_enforcement","scientist","astronomer","meteorologist","engineer","medical_professional","maritime","civilian","civilian_group","anonymous","unknown"]
### entities[]/option-4.fields.categories[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.categories[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.categories[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.categories[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.categories[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.categories[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.categories[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.categories[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.categories[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.categories[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.categories[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses
Type: list of object; optional
Sourced military witnesses assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-4.fields.militaryWitnesses[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.militaryWitnesses[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.militaryWitnesses[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.militaryWitnesses[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.militaryWitnesses[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.militaryWitnesses[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses
Type: list of object; optional
Sourced aviation witnesses assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-4.fields.aviationWitnesses[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.aviationWitnesses[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.aviationWitnesses[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.aviationWitnesses[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.aviationWitnesses[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.aviationWitnesses[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers
Type: list of object; optional
Sourced professional observers assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-4.fields.professionalObservers[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.professionalObservers[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.professionalObservers[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.professionalObservers[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.professionalObservers[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-4.fields.professionalObservers[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.professionalObservers[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.professionalObservers[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.professionalObservers[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.professionalObservers[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions
Type: list of object; optional
Sourced descriptions assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-4.fields.descriptions[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.descriptions[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.descriptions[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.descriptions[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-4.fields.descriptions[].content/option-1.value[]
Type: string
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.descriptions[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-4.fields.descriptions[].content/option-2.value[]
Type: string
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.descriptions[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.descriptions[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.descriptions[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.descriptions[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.kind
Type: string; required in containing object
const: "source_edition"
### entities[]/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title
Type: list of object; optional
Sourced title assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.title[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.title[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.title[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.title[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.title[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.title[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.title[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.title[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.title[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.title[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.title[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.title[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.title[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.title[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.title[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.title[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.title[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.title[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.title[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.title[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.title[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.title[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.title[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.title[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.title[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.title[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.title[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.title[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.title[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.title[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.title[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.title[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.title[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.title[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.title[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.title[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.title[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.title[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.title[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.title[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.title[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.title[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.title[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.title[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.title[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.title[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.title[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.title[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.title[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.title[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.title[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.title[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.title[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.title[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.type
Type: list of object; optional
Sourced type assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.type[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.type[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.type[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.type[].content/option-1.value
Type: string; required in containing object
Kind of source backing an observation (document, testimony, media, etc.).
enum: ["foia","official_report","official_statement","congressional_testimony","congressional_report","military_document","intelligence_document","whistleblower","firsthand_witness","secondhand_account","news_article","documentary","interview","book","academic_paper","investigation_report","database_entry","social_media","website","other"]
### entities[]/option-5.fields.type[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.type[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.type[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.type[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.type[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.type[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.type[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.type[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.type[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.type[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.type[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.type[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.type[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.type[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.type[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.type[].content/option-2.value
Type: string; required in containing object
Kind of source backing an observation (document, testimony, media, etc.).
enum: ["foia","official_report","official_statement","congressional_testimony","congressional_report","military_document","intelligence_document","whistleblower","firsthand_witness","secondhand_account","news_article","documentary","interview","book","academic_paper","investigation_report","database_entry","social_media","website","other"]
### entities[]/option-5.fields.type[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.type[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.type[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.type[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.type[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.type[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.type[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.type[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.type[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.type[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.type[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.type[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.type[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.type[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.type[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.type[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.type[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.type[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.type[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.type[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.type[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.type[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.type[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.type[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.type[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.type[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.type[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.type[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.type[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.type[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.type[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.type[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.type[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.type[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.author
Type: list of object; optional
Sourced author assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.author[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.author[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.author[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.author[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.author[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.author[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.author[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.author[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.author[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.author[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.author[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.author[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.author[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.author[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.author[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.author[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.author[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.author[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.author[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.author[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.author[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.author[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.author[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.author[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.author[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.author[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.author[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.author[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.author[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.author[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.author[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.author[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.author[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.author[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.author[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.author[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.author[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.author[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.author[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.author[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.author[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.author[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.author[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.author[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.author[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.author[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.author[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.author[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.author[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.author[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.author[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.author[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.author[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.author[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.organization
Type: list of object; optional
Sourced organization assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.organization[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.organization[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.organization[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.organization[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.organization[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.organization[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.organization[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.organization[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.organization[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.organization[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.organization[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.organization[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.organization[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.organization[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.organization[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.organization[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.organization[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.organization[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.organization[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.organization[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.organization[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.organization[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.organization[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.organization[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.organization[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.organization[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.organization[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.organization[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.organization[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.organization[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.organization[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.organization[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.organization[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.organization[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.organization[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.organization[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.organization[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.organization[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.organization[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.organization[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.organization[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.organization[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.organization[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.organization[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.organization[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.organization[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.organization[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.organization[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.organization[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.organization[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.organization[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.organization[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.organization[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.organization[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.issuedAt
Type: list of object; optional
Sourced issued at assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.issuedAt[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.issuedAt[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.issuedAt[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.issuedAt[].content/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.issuedAt[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.issuedAt[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.issuedAt[].content/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-5.fields.issuedAt[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.issuedAt[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.issuedAt[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.issuedAt[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.issuedAt[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.issuedAt[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.issuedAt[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.issuedAt[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveLocation
Type: list of object; optional
Sourced archive location assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.archiveLocation[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.archiveLocation[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.archiveLocation[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.archiveLocation[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveLocation[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveLocation[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.archiveLocation[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveLocation[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveLocation[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveLocation[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.archiveLocation[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.archiveLocation[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.archiveLocation[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveLocation[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.archiveLocation[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.primaryDisplay
Type: list of object; optional
Sourced primary display assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.primaryDisplay[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.primaryDisplay[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.primaryDisplay[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.primaryDisplay[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.primaryDisplay[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.primaryDisplay[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.primaryDisplay[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-5.fields.primaryDisplay[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.primaryDisplay[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.primaryDisplay[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.primaryDisplay[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.primaryDisplay[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.primaryDisplay[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.primaryDisplay[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.primaryDisplay[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalUrl
Type: list of object; optional
Sourced original url assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.originalUrl[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.originalUrl[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.originalUrl[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.originalUrl[].content/option-1.value
Type: string; required in containing object
format: "uri"
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalUrl[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalUrl[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.originalUrl[].content/option-2.value
Type: string; required in containing object
format: "uri"
### entities[]/option-5.fields.originalUrl[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalUrl[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalUrl[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.originalUrl[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.originalUrl[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.originalUrl[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalUrl[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.originalUrl[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveUrl
Type: list of object; optional
Sourced archive url assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.archiveUrl[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.archiveUrl[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.archiveUrl[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.archiveUrl[].content/option-1.value
Type: string; required in containing object
format: "uri"
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveUrl[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveUrl[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.archiveUrl[].content/option-2.value
Type: string; required in containing object
format: "uri"
### entities[]/option-5.fields.archiveUrl[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveUrl[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveUrl[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.archiveUrl[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.archiveUrl[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.archiveUrl[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveUrl[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.archiveUrl[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.reference
Type: list of object; optional
Sourced reference assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.reference[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.reference[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.reference[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.reference[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.reference[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.reference[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.reference[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.reference[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.reference[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.reference[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.reference[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.reference[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.reference[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.reference[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.reference[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.reference[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.reference[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.reference[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.reference[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.reference[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.reference[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.reference[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.reference[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.reference[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.reference[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.reference[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.reference[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.reference[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.reference[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.reference[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.reference[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.reference[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.reference[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.reference[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.reference[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.reference[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.reference[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.reference[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.reference[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.reference[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.reference[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.reference[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.reference[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.reference[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.reference[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.reference[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.reference[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.reference[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.reference[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.reference[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.reference[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.reference[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.reference[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.reference[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.isPrimarySource
Type: list of object; optional
Sourced is primary source assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.isPrimarySource[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.isPrimarySource[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.isPrimarySource[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.isPrimarySource[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-1.value.value
Type: boolean; required in containing object
### entities[]/option-5.fields.isPrimarySource[].content/option-1.value.context
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.isPrimarySource[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.isPrimarySource[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.isPrimarySource[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-2.value.value
Type: boolean; required in containing object
### entities[]/option-5.fields.isPrimarySource[].content/option-2.value.context
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.isPrimarySource[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.isPrimarySource[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.isPrimarySource[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.isPrimarySource[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.isPrimarySource[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.isPrimarySource[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.isPrimarySource[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.isPrimarySource[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.documentType
Type: list of object; optional
Sourced document type assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.documentType[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.documentType[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.documentType[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.documentType[].content/option-1.value
Type: string; required in containing object
Kind of government/official document.
enum: ["foia_release","official_report","congressional_record","military_memo","intelligence_assessment","inspector_general","presidential_directive","executive_order","declassified_cable","investigation_file","other"]
### entities[]/option-5.fields.documentType[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.documentType[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.documentType[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.documentType[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.documentType[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.documentType[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.documentType[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.documentType[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.documentType[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.documentType[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.documentType[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.documentType[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.documentType[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.documentType[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.documentType[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.documentType[].content/option-2.value
Type: string; required in containing object
Kind of government/official document.
enum: ["foia_release","official_report","congressional_record","military_memo","intelligence_assessment","inspector_general","presidential_directive","executive_order","declassified_cable","investigation_file","other"]
### entities[]/option-5.fields.documentType[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.documentType[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.documentType[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.documentType[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.documentType[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.documentType[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.documentType[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.documentType[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.documentType[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.documentType[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.documentType[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.documentType[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.documentType[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.documentType[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.documentType[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.documentType[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.documentType[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.documentType[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.documentType[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.documentType[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.documentType[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.documentType[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.documentType[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.documentType[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.documentType[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.documentType[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.documentType[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.documentType[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.documentType[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.documentType[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.documentType[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.documentType[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.documentType[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.documentType[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originatingAgency
Type: list of object; optional
Sourced originating agency assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.originatingAgency[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.originatingAgency[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.originatingAgency[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.originatingAgency[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originatingAgency[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originatingAgency[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.originatingAgency[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originatingAgency[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originatingAgency[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originatingAgency[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.originatingAgency[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.originatingAgency[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.originatingAgency[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originatingAgency[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.originatingAgency[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.controlNumbers
Type: list of object; optional
Sourced control numbers assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.controlNumbers[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.controlNumbers[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.controlNumbers[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.controlNumbers[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-5.fields.controlNumbers[].content/option-1.value[]
Type: string
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.controlNumbers[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.controlNumbers[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.controlNumbers[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-5.fields.controlNumbers[].content/option-2.value[]
Type: string
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.controlNumbers[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.controlNumbers[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.controlNumbers[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.controlNumbers[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.controlNumbers[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.controlNumbers[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.controlNumbers[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.controlNumbers[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.foiaRequestNumber
Type: list of object; optional
Sourced foia request number assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.foiaRequestNumber[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.foiaRequestNumber[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.foiaRequestNumber[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalClassification
Type: list of object; optional
Sourced original classification assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.originalClassification[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.originalClassification[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.originalClassification[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.originalClassification[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalClassification[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalClassification[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.originalClassification[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalClassification[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalClassification[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalClassification[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.originalClassification[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.originalClassification[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.originalClassification[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalClassification[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.originalClassification[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.classificationLevel
Type: list of object; optional
Sourced classification level assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.classificationLevel[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.classificationLevel[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.classificationLevel[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.classificationLevel[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.classificationLevel[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.classificationLevel[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.classificationLevel[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.classificationLevel[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.classificationLevel[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.classificationLevel[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.classificationLevel[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.classificationLevel[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.classificationLevel[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.classificationLevel[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.classificationLevel[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.pageCount
Type: list of object; optional
Sourced page count assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.pageCount[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.pageCount[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.pageCount[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.pageCount[].content/option-1.value
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.pageCount[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.pageCount[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.pageCount[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.pageCount[].content/option-2.value
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.pageCount[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.pageCount[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.pageCount[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.pageCount[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.pageCount[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.pageCount[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.pageCount[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.pageCount[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.pageCount[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.pageCount[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionLevel
Type: list of object; optional
Sourced redaction level assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.redactionLevel[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.redactionLevel[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.redactionLevel[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.redactionLevel[].content/option-1.value
Type: string; required in containing object
enum: ["none","partial","heavy","unknown"]
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionLevel[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionLevel[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.redactionLevel[].content/option-2.value
Type: string; required in containing object
enum: ["none","partial","heavy","unknown"]
### entities[]/option-5.fields.redactionLevel[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionLevel[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionLevel[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.redactionLevel[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.redactionLevel[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.redactionLevel[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionLevel[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.redactionLevel[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionDescription
Type: list of object; optional
Sourced redaction description assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.redactionDescription[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.redactionDescription[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.redactionDescription[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.redactionDescription[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionDescription[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionDescription[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.redactionDescription[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionDescription[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionDescription[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionDescription[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.redactionDescription[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.redactionDescription[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.redactionDescription[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionDescription[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.redactionDescription[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionPercent
Type: list of object; optional
Sourced redaction percent assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.redactionPercent[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.redactionPercent[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.redactionPercent[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.redactionPercent[].content/option-1.value
Type: number; required in containing object
minimum: 0
maximum: 100
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionPercent[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionPercent[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.redactionPercent[].content/option-2.value
Type: number; required in containing object
minimum: 0
maximum: 100
### entities[]/option-5.fields.redactionPercent[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionPercent[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionPercent[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.redactionPercent[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.redactionPercent[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.redactionPercent[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionPercent[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.redactionPercent[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.notes
Type: list of object; optional
Sourced notes assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.notes[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.notes[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.notes[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.notes[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.notes[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.notes[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.notes[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.notes[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.notes[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.notes[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.notes[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.notes[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.notes[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.notes[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.notes[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.notes[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.notes[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.notes[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.notes[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.notes[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.notes[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.notes[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.notes[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.notes[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.notes[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.notes[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.notes[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.notes[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.notes[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.notes[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.notes[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.notes[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.notes[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.notes[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.notes[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.notes[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.notes[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.notes[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.notes[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.notes[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.notes[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.notes[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.notes[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.notes[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.notes[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.notes[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.notes[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.notes[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.notes[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.notes[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.notes[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.notes[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.notes[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.notes[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.artifact
Type: object; required in containing object
One exact artifact in the scoped observation inventory. A URL, title or legacy hash cannot substitute for this identity.
Extra fields: Not allowed in this object
### entities[]/option-5.artifact.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.artifact.digest
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.artifact.digest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.artifact.digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-6
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.kind
Type: string; required in containing object
const: "document_event"
### entities[]/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType
Type: list of object; optional
Sourced event type assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-6.fields.eventType[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.eventType[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.eventType[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-6.fields.eventType[].content/option-1.value
Type: string; required in containing object
enum: ["creation","release","classification","declassification"]
### entities[]/option-6.fields.eventType[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.eventType[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.eventType[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.eventType[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.eventType[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.eventType[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.eventType[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.eventType[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.eventType[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.eventType[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.eventType[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.eventType[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.eventType[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.eventType[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.eventType[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-6.fields.eventType[].content/option-2.value
Type: string; required in containing object
enum: ["creation","release","classification","declassification"]
### entities[]/option-6.fields.eventType[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.eventType[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.eventType[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.eventType[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.eventType[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.eventType[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.eventType[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.eventType[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.eventType[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.eventType[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.eventType[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.eventType[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.eventType[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.eventType[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.eventType[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.eventType[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-6.fields.eventType[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-6.fields.eventType[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-6.fields.eventType[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.eventType[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-6.fields.eventType[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.eventType[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.eventType[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.eventType[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.eventType[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.eventType[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.eventType[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.eventType[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.eventType[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.eventType[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.eventType[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.eventType[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.eventType[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.eventType[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.occurredAt
Type: list of object; optional
Sourced occurred at assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-6.fields.occurredAt[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.occurredAt[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.occurredAt[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-6.fields.occurredAt[].content/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.occurredAt[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.occurredAt[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-6.fields.occurredAt[].content/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-6.fields.occurredAt[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.occurredAt[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.occurredAt[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-6.fields.occurredAt[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-6.fields.occurredAt[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-6.fields.occurredAt[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.occurredAt[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-6.fields.occurredAt[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.authority
Type: list of object; optional
Sourced authority assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-6.fields.authority[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.authority[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.authority[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-6.fields.authority[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.authority[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.authority[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.authority[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.authority[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.authority[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.authority[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.authority[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.authority[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.authority[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.authority[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.authority[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.authority[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.authority[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.authority[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.authority[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-6.fields.authority[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.authority[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.authority[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.authority[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.authority[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.authority[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.authority[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.authority[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.authority[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.authority[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.authority[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.authority[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.authority[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.authority[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.authority[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.authority[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.authority[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-6.fields.authority[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-6.fields.authority[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-6.fields.authority[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.authority[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-6.fields.authority[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.authority[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.authority[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.authority[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.authority[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.authority[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.authority[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.authority[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.authority[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.authority[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.authority[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.authority[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.authority[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.authority[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.reference
Type: list of object; optional
Sourced reference assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-6.fields.reference[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.reference[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.reference[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-6.fields.reference[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.reference[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.reference[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.reference[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.reference[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.reference[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.reference[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.reference[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.reference[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.reference[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.reference[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.reference[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.reference[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.reference[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.reference[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.reference[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-6.fields.reference[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.reference[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.reference[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.reference[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.reference[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.reference[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.reference[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.reference[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.reference[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.reference[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.reference[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.reference[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.reference[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.reference[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.reference[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.reference[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.reference[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-6.fields.reference[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-6.fields.reference[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-6.fields.reference[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.reference[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-6.fields.reference[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.reference[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.reference[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.reference[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.reference[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.reference[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.reference[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.reference[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.reference[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.reference[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.reference[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.reference[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.reference[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.reference[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.marking
Type: list of object; optional
Sourced marking assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-6.fields.marking[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.marking[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.marking[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-6.fields.marking[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.marking[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.marking[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.marking[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.marking[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.marking[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.marking[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.marking[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.marking[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.marking[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.marking[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.marking[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.marking[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.marking[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.marking[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.marking[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-6.fields.marking[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.marking[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.marking[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.marking[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.marking[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.marking[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.marking[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.marking[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.marking[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.marking[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.marking[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.marking[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.marking[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.marking[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.marking[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.marking[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.marking[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-6.fields.marking[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-6.fields.marking[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-6.fields.marking[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.marking[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-6.fields.marking[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.marking[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.marking[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.marking[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.marking[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.marking[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.marking[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.marking[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.marking[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.marking[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.marking[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.marking[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.marking[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.marking[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes
Type: list of object; optional
Sourced notes assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-6.fields.notes[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.notes[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.notes[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-6.fields.notes[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.notes[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.notes[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.notes[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-6.fields.notes[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.notes[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.notes[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.notes[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-6.fields.notes[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-6.fields.notes[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-6.fields.notes[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-6.fields.notes[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.notes[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.notes[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.notes[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.editionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.kind
Type: string; required in containing object
const: "digital_artifact"
### entities[]/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes
Type: list of object; optional
Sourced declared hashes assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.declaredHashes[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.declaredHashes[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.declaredHashes[].content/option-1.value
Type: list of object; required in containing object
minItems: 1
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].hash
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].hash/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].hash/option-1.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].hash/option-1.value
Type: string; required in containing object
pattern: "^[a-fA-F0-9]{64}(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].hash/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].hash/option-2.algorithm
Type: string; required in containing object
const: "sha512"
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].hash/option-2.value
Type: string; required in containing object
pattern: "^[a-fA-F0-9]{128}(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].hash/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].hash/option-3.algorithm
Type: string; required in containing object
const: "sha1"
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].hash/option-3.value
Type: string; required in containing object
pattern: "^[a-fA-F0-9]{40}(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].hash/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].hash/option-4.algorithm
Type: string; required in containing object
const: "md5"
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].hash/option-4.value
Type: string; required in containing object
pattern: "^[a-fA-F0-9]{32}(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].appliesTo
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].appliesTo/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].appliesTo/option-1.kind
Type: string; required in containing object
const: "artifact"
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].appliesTo/option-1.reference
Type: object; required in containing object
One exact artifact in the scoped observation inventory. A URL, title or legacy hash cannot substitute for this identity.
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].appliesTo/option-1.reference.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].appliesTo/option-1.reference.digest
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].appliesTo/option-1.reference.digest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].appliesTo/option-1.reference.digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].appliesTo/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].appliesTo/option-2.kind
Type: string; required in containing object
const: "unavailable_original"
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].appliesTo/option-2.description
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.declaredHashes[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.declaredHashes[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.declaredHashes[].content/option-2.value
Type: list of object; required in containing object
minItems: 1
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].hash
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].hash/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].hash/option-1.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].hash/option-1.value
Type: string; required in containing object
pattern: "^[a-fA-F0-9]{64}(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].hash/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].hash/option-2.algorithm
Type: string; required in containing object
const: "sha512"
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].hash/option-2.value
Type: string; required in containing object
pattern: "^[a-fA-F0-9]{128}(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].hash/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].hash/option-3.algorithm
Type: string; required in containing object
const: "sha1"
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].hash/option-3.value
Type: string; required in containing object
pattern: "^[a-fA-F0-9]{40}(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].hash/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].hash/option-4.algorithm
Type: string; required in containing object
const: "md5"
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].hash/option-4.value
Type: string; required in containing object
pattern: "^[a-fA-F0-9]{32}(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].appliesTo
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].appliesTo/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].appliesTo/option-1.kind
Type: string; required in containing object
const: "artifact"
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].appliesTo/option-1.reference
Type: object; required in containing object
One exact artifact in the scoped observation inventory. A URL, title or legacy hash cannot substitute for this identity.
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].appliesTo/option-1.reference.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].appliesTo/option-1.reference.digest
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].appliesTo/option-1.reference.digest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].appliesTo/option-1.reference.digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].appliesTo/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].appliesTo/option-2.kind
Type: string; required in containing object
const: "unavailable_original"
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].appliesTo/option-2.description
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.declaredHashes[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.declaredHashes[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.declaredHashes[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.declaredHashes[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.declaredHashes[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.declaredHashes[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.declaredHashes[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.declaredHashes[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.device
Type: list of object; optional
Sourced device assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.device[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.device[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.device[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.device[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.device[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.device[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.device[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.device[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.device[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.device[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.device[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.device[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.device[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.device[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.device[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.device[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.device[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.device[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.device[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.device[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.device[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.device[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.device[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.device[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.device[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.device[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.device[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.device[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.device[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.device[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.device[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.device[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.device[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.device[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.device[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.device[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.device[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.device[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.device[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.device[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.device[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.device[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.device[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.device[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.device[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.device[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.device[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.device[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.device[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.device[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.device[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.device[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.device[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.device[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.manufacturer
Type: list of object; optional
Sourced manufacturer assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.manufacturer[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.manufacturer[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.manufacturer[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.manufacturer[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.manufacturer[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.manufacturer[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.manufacturer[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.manufacturer[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.manufacturer[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.manufacturer[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.manufacturer[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.manufacturer[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.manufacturer[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.manufacturer[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.manufacturer[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.model
Type: list of object; optional
Sourced model assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.model[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.model[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.model[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.model[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.model[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.model[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.model[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.model[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.model[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.model[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.model[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.model[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.model[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.model[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.model[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.model[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.model[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.model[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.model[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.model[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.model[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.model[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.model[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.model[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.model[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.model[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.model[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.model[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.model[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.model[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.model[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.model[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.model[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.model[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.model[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.model[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.model[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.model[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.model[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.model[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.model[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.model[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.model[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.model[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.model[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.model[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.model[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.model[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.model[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.model[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.model[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.model[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.model[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.model[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.software
Type: list of object; optional
Sourced software assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.software[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.software[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.software[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.software[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.software[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.software[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.software[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.software[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.software[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.software[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.software[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.software[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.software[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.software[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.software[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.software[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.software[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.software[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.software[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.software[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.software[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.software[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.software[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.software[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.software[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.software[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.software[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.software[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.software[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.software[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.software[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.software[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.software[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.software[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.software[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.software[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.software[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.software[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.software[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.software[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.software[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.software[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.software[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.software[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.software[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.software[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.software[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.software[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.software[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.software[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.software[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.software[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.software[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.software[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalFilename
Type: list of object; optional
Sourced original filename assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.originalFilename[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.originalFilename[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.originalFilename[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.originalFilename[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalFilename[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalFilename[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.originalFilename[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalFilename[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalFilename[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalFilename[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.originalFilename[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.originalFilename[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.originalFilename[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalFilename[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.originalFilename[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalCreationDate
Type: list of object; optional
Sourced original creation date assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.originalCreationDate[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.originalCreationDate[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.originalCreationDate[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalCreationDate[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalCreationDate[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.originalCreationDate[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.originalCreationDate[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.originalCreationDate[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalCreationDate[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.originalCreationDate[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.gpsCoordinates
Type: list of object; optional
Sourced gps coordinates assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.gpsCoordinates[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.gpsCoordinates[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.gpsCoordinates[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.value.latitude
Type: number; required in containing object
minimum: -90
maximum: 90
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.value.longitude
Type: number; required in containing object
minimum: -180
maximum: 180
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.value.altitude
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.value.altitude.value
Type: number; required in containing object
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.value.altitude.unit
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.value.altitude.unit/option-1
Type: string
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.value.altitude.unit/option-2
Type: null
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.value.altitude.datum
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.gpsCoordinates[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.value.latitude
Type: number; required in containing object
minimum: -90
maximum: 90
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.value.longitude
Type: number; required in containing object
minimum: -180
maximum: 180
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.value.altitude
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.value.altitude.value
Type: number; required in containing object
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.value.altitude.unit
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.value.altitude.unit/option-1
Type: string
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.value.altitude.unit/option-2
Type: null
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.value.altitude.datum
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.gpsCoordinates[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.gpsCoordinates[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.gpsCoordinates[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.gpsCoordinates[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.gpsCoordinates[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataPreserved
Type: list of object; optional
Sourced metadata preserved assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.metadataPreserved[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.metadataPreserved[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.metadataPreserved[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.metadataPreserved[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataPreserved[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataPreserved[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.metadataPreserved[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-7.fields.metadataPreserved[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataPreserved[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataPreserved[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.metadataPreserved[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.metadataPreserved[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.metadataPreserved[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataPreserved[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.metadataPreserved[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataStripped
Type: list of object; optional
Sourced metadata stripped assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.metadataStripped[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.metadataStripped[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.metadataStripped[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.metadataStripped[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataStripped[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataStripped[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.metadataStripped[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-7.fields.metadataStripped[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataStripped[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataStripped[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.metadataStripped[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.metadataStripped[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.metadataStripped[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataStripped[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.metadataStripped[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.strippedReason
Type: list of object; optional
Sourced stripped reason assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.strippedReason[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.strippedReason[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.strippedReason[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.strippedReason[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.strippedReason[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.strippedReason[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.strippedReason[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.strippedReason[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.strippedReason[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.strippedReason[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.strippedReason[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.strippedReason[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.strippedReason[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.strippedReason[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.strippedReason[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.custodyStatus
Type: list of object; optional
Sourced custody status assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.custodyStatus[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.custodyStatus[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.custodyStatus[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.custodyStatus[].content/option-1.value
Type: string; required in containing object
Custody status of an evidence item.
enum: ["verified","partial","unverified","government_held","private_held","lost","destroyed","classified","unknown"]
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.custodyStatus[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.custodyStatus[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.custodyStatus[].content/option-2.value
Type: string; required in containing object
Custody status of an evidence item.
enum: ["verified","partial","unverified","government_held","private_held","lost","destroyed","classified","unknown"]
### entities[]/option-7.fields.custodyStatus[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.custodyStatus[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.custodyStatus[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.custodyStatus[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.custodyStatus[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.custodyStatus[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.custodyStatus[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.custodyStatus[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.provenanceChainDescription
Type: list of object; optional
Sourced provenance chain description assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.provenanceChainDescription[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.provenanceChainDescription[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.value[]
Type: string
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.value[]
Type: string
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.provenanceChainDescription[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.derivedFromArtifactIds
Type: list of object; optional
Sourced derived from artifact ids assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.derivedFromArtifactIds[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.derivedFromArtifactIds[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.value[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.value[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.lastUpdated
Type: list of object; optional
Sourced last updated assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.lastUpdated[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.lastUpdated[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.lastUpdated[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.lastUpdated[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.lastUpdated[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-7.fields.lastUpdated[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.lastUpdated[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.lastUpdated[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.lastUpdated[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.lastUpdated[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.lastUpdated[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.lastUpdated[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.lastUpdated[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes
Type: list of object; optional
Sourced notes assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.notes[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.notes[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.notes[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.notes[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.notes[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.notes[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.notes[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.notes[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.notes[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.notes[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.notes[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.notes[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.notes[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.notes[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.notes[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.notes[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.notes[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.notes[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.artifact
Type: object; required in containing object
One exact artifact in the scoped observation inventory. A URL, title or legacy hash cannot substitute for this identity.
Extra fields: Not allowed in this object
### entities[]/option-7.artifact.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.artifact.digest
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.artifact.digest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.artifact.digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-8
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.kind
Type: string; required in containing object
const: "digital_custody_action"
### entities[]/option-8.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action
Type: list of object; optional
Sourced action assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-8.fields.action[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.action[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-8.fields.action[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-8.fields.action[].content/option-1.value
Type: string; required in containing object
An action recorded in a chain-of-custody entry.
enum: ["creation","collection","transfer","storage","analysis","release","classification","destruction","loss","recovery","other"]
### entities[]/option-8.fields.action[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.action[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.action[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.action[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.action[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.action[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.action[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.action[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.action[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.action[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.action[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.action[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.action[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.action[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.action[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-8.fields.action[].content/option-2.value
Type: string; required in containing object
An action recorded in a chain-of-custody entry.
enum: ["creation","collection","transfer","storage","analysis","release","classification","destruction","loss","recovery","other"]
### entities[]/option-8.fields.action[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.action[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.action[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.action[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.action[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.action[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.action[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.action[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.action[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.action[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.action[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.action[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.action[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.action[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.action[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.action[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-8.fields.action[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-8.fields.action[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-8.fields.action[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.action[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-8.fields.action[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.action[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.action[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.action[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.action[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.action[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.action[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.action[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.action[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.action[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.action[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.action[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.action[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.action[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.occurredAt
Type: list of object; optional
Sourced occurred at assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-8.fields.occurredAt[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.occurredAt[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-8.fields.occurredAt[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-8.fields.occurredAt[].content/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.occurredAt[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.occurredAt[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-8.fields.occurredAt[].content/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-8.fields.occurredAt[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.occurredAt[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.occurredAt[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-8.fields.occurredAt[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-8.fields.occurredAt[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-8.fields.occurredAt[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.occurredAt[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-8.fields.occurredAt[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.from
Type: list of object; optional
Sourced from assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-8.fields.from[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.from[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-8.fields.from[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-8.fields.from[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.from[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.from[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.from[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.from[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.from[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.from[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.from[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.from[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.from[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.from[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.from[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.from[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.from[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.from[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.from[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-8.fields.from[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.from[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.from[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.from[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.from[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.from[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.from[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.from[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.from[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.from[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.from[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.from[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.from[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.from[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.from[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.from[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.from[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-8.fields.from[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-8.fields.from[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-8.fields.from[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.from[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-8.fields.from[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.from[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.from[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.from[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.from[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.from[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.from[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.from[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.from[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.from[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.from[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.from[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.from[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.from[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.to
Type: list of object; optional
Sourced to assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-8.fields.to[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.to[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-8.fields.to[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-8.fields.to[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.to[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.to[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.to[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.to[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.to[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.to[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.to[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.to[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.to[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.to[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.to[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.to[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.to[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.to[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.to[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-8.fields.to[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.to[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.to[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.to[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.to[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.to[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.to[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.to[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.to[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.to[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.to[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.to[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.to[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.to[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.to[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.to[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.to[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-8.fields.to[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-8.fields.to[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-8.fields.to[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.to[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-8.fields.to[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.to[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.to[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.to[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.to[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.to[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.to[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.to[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.to[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.to[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.to[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.to[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.to[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.to[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.location
Type: list of object; optional
Sourced location assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-8.fields.location[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.location[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-8.fields.location[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-8.fields.location[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.location[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.location[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.location[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.location[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.location[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.location[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.location[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.location[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.location[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.location[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.location[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.location[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.location[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.location[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.location[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-8.fields.location[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.location[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.location[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.location[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.location[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.location[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.location[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.location[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.location[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.location[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.location[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.location[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.location[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.location[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.location[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.location[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.location[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-8.fields.location[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-8.fields.location[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-8.fields.location[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.location[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-8.fields.location[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.location[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.location[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.location[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.location[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.location[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.location[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.location[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.location[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.location[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.location[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.location[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.location[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.location[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.reference
Type: list of object; optional
Sourced reference assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-8.fields.reference[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.reference[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-8.fields.reference[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-8.fields.reference[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.reference[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.reference[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.reference[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.reference[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.reference[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.reference[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.reference[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.reference[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.reference[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.reference[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.reference[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.reference[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.reference[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.reference[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.reference[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-8.fields.reference[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.reference[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.reference[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.reference[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.reference[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.reference[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.reference[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.reference[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.reference[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.reference[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.reference[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.reference[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.reference[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.reference[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.reference[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.reference[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.reference[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-8.fields.reference[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-8.fields.reference[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-8.fields.reference[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.reference[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-8.fields.reference[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.reference[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.reference[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.reference[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.reference[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.reference[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.reference[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.reference[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.reference[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.reference[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.reference[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.reference[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.reference[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.reference[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.notes
Type: list of object; optional
Sourced notes assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-8.fields.notes[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.notes[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-8.fields.notes[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-8.fields.notes[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.notes[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.notes[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.notes[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.notes[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.notes[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.notes[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.notes[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.notes[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.notes[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.notes[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.notes[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.notes[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.notes[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.notes[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.notes[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-8.fields.notes[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.notes[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.notes[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.notes[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.notes[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.notes[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.notes[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.notes[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.notes[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.notes[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.notes[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.notes[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.notes[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.notes[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.notes[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.notes[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.notes[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-8.fields.notes[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-8.fields.notes[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-8.fields.notes[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.notes[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-8.fields.notes[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.notes[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.notes[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.notes[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.notes[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.notes[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.notes[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.notes[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.notes[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.notes[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.notes[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.notes[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.notes[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.notes[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.artifactId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.predecessor
Type: choice; required in containing object
Declared preceding action on the same artifact, a declared beginning, or an explicit gap. Array order carries no chronology.
Choose: Exactly one of the alternatives below
### entities[]/option-8.predecessor/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.predecessor/option-1.kind
Type: string; required in containing object
const: "action"
### entities[]/option-8.predecessor/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.predecessor/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.predecessor/option-2.kind
Type: string; required in containing object
const: "start"
### entities[]/option-8.predecessor/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.predecessor/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-8.predecessor/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-9
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.kind
Type: string; required in containing object
const: "external_identifier"
### entities[]/option-9.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-9.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value
Type: list of object; optional
Sourced value assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-9.fields.value[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-9.fields.value[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-9.fields.value[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-9.fields.value[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-1.value.system
Type: string; required in containing object
External identifier namespace (reporting centers, archives, academic registries, media hosts).
enum: ["nuforc","mufon","geipan","cufos","nicap","bluebook","nara","foia","aaro","congress","doi","arxiv","orcid","pubmed","isbn","issn","youtube","vimeo","internet_archive","wayback","url","uri","custom"]
### entities[]/option-9.fields.value[].content/option-1.value.systemName
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-1.value.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-1.value.url
Type: string; optional
format: "uri"
### entities[]/option-9.fields.value[].content/option-1.value.notes
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-9.fields.value[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-9.fields.value[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-9.fields.value[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-9.fields.value[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-9.fields.value[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-9.fields.value[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-9.fields.value[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.value[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.value[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-9.fields.value[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-9.fields.value[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-9.fields.value[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-2.value.system
Type: string; required in containing object
External identifier namespace (reporting centers, archives, academic registries, media hosts).
enum: ["nuforc","mufon","geipan","cufos","nicap","bluebook","nara","foia","aaro","congress","doi","arxiv","orcid","pubmed","isbn","issn","youtube","vimeo","internet_archive","wayback","url","uri","custom"]
### entities[]/option-9.fields.value[].content/option-2.value.systemName
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-2.value.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-2.value.url
Type: string; optional
format: "uri"
### entities[]/option-9.fields.value[].content/option-2.value.notes
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-9.fields.value[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-9.fields.value[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-9.fields.value[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-9.fields.value[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-9.fields.value[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-9.fields.value[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-9.fields.value[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.value[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.value[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-9.fields.value[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-9.fields.value[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-9.fields.value[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-9.fields.value[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-9.fields.value[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-9.fields.value[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-9.fields.value[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-9.fields.value[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-9.fields.value[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-9.fields.value[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-9.fields.value[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-9.fields.value[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-9.fields.value[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.value[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.value[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-9.fields.value[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-9.fields.value[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.primaryDisplay
Type: list of object; optional
Sourced primary display assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-9.fields.primaryDisplay[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-9.fields.primaryDisplay[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-9.fields.primaryDisplay[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-9.fields.primaryDisplay[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.primaryDisplay[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.primaryDisplay[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-9.fields.primaryDisplay[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-9.fields.primaryDisplay[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.primaryDisplay[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.primaryDisplay[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-9.fields.primaryDisplay[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-9.fields.primaryDisplay[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-9.fields.primaryDisplay[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.primaryDisplay[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-9.fields.primaryDisplay[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.notes
Type: list of object; optional
Sourced notes assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-9.fields.notes[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-9.fields.notes[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-9.fields.notes[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-9.fields.notes[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.notes[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-9.fields.notes[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-9.fields.notes[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-9.fields.notes[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-9.fields.notes[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-9.fields.notes[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-9.fields.notes[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-9.fields.notes[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.notes[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.notes[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-9.fields.notes[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-9.fields.notes[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.notes[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.notes[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.notes[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-9.fields.notes[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.notes[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.notes[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-9.fields.notes[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-9.fields.notes[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-9.fields.notes[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-9.fields.notes[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-9.fields.notes[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-9.fields.notes[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-9.fields.notes[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.notes[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.notes[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-9.fields.notes[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-9.fields.notes[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.notes[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.notes[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.notes[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-9.fields.notes[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-9.fields.notes[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-9.fields.notes[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.notes[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-9.fields.notes[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.notes[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-9.fields.notes[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-9.fields.notes[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-9.fields.notes[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-9.fields.notes[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-9.fields.notes[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-9.fields.notes[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-9.fields.notes[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.notes[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.notes[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-9.fields.notes[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-9.fields.notes[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.notes[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.subject
Type: choice; required in containing object
The scoped observation or one exact source edition. A catalog identifier is not automatically an event identifier.
Choose: Exactly one of the alternatives below
### entities[]/option-9.subject/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.subject/option-1.kind
Type: string; required in containing object
const: "observation"
### entities[]/option-9.subject/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.subject/option-2.kind
Type: string; required in containing object
const: "source_edition"
### entities[]/option-9.subject/option-2.editionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.kind
Type: string; required in containing object
const: "identifier_check"
### entities[]/option-10.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt
Type: list of object; optional
Sourced checked at assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-10.fields.checkedAt[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.checkedAt[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-10.fields.checkedAt[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-10.fields.checkedAt[].content/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.checkedAt[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.checkedAt[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-10.fields.checkedAt[].content/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-10.fields.checkedAt[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.checkedAt[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.checkedAt[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-10.fields.checkedAt[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-10.fields.checkedAt[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-10.fields.checkedAt[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.checkedAt[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-10.fields.checkedAt[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.agent
Type: list of object; optional
Sourced agent assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-10.fields.agent[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.agent[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-10.fields.agent[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-10.fields.agent[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.agent[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.agent[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.agent[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.agent[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.agent[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.agent[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.agent[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.agent[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.agent[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.agent[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.agent[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.agent[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.agent[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.agent[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.agent[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-10.fields.agent[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.agent[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.agent[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.agent[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.agent[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.agent[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.agent[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.agent[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.agent[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.agent[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.agent[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.agent[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.agent[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.agent[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.agent[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.agent[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.agent[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-10.fields.agent[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-10.fields.agent[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-10.fields.agent[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.agent[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-10.fields.agent[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.agent[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.agent[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.agent[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.agent[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.agent[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.agent[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.agent[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.agent[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.agent[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.agent[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.agent[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.agent[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.agent[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.method
Type: list of object; optional
Sourced method assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-10.fields.method[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.method[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-10.fields.method[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-10.fields.method[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.method[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.method[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.method[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.method[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.method[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.method[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.method[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.method[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.method[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.method[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.method[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.method[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.method[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.method[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.method[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-10.fields.method[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.method[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.method[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.method[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.method[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.method[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.method[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.method[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.method[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.method[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.method[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.method[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.method[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.method[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.method[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.method[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.method[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-10.fields.method[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-10.fields.method[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-10.fields.method[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.method[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-10.fields.method[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.method[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.method[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.method[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.method[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.method[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.method[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.method[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.method[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.method[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.method[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.method[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.method[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.method[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.methodVersion
Type: list of object; optional
Sourced method version assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-10.fields.methodVersion[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.methodVersion[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-10.fields.methodVersion[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-10.fields.methodVersion[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.methodVersion[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.methodVersion[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-10.fields.methodVersion[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.methodVersion[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.methodVersion[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.methodVersion[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-10.fields.methodVersion[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-10.fields.methodVersion[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-10.fields.methodVersion[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.methodVersion[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-10.fields.methodVersion[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.outcome
Type: list of object; optional
Sourced outcome assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-10.fields.outcome[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.outcome[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-10.fields.outcome[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-10.fields.outcome[].content/option-1.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.outcome[].content/option-1.value/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-1.value/option-1.kind
Type: string; required in containing object
const: "access"
### entities[]/option-10.fields.outcome[].content/option-1.value/option-1.result
Type: string; required in containing object
enum: ["accessible","inaccessible","unknown"]
### entities[]/option-10.fields.outcome[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "identity"
### entities[]/option-10.fields.outcome[].content/option-1.value/option-2.result
Type: string; required in containing object
enum: ["matches","does_not_match","unknown"]
### entities[]/option-10.fields.outcome[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.outcome[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.outcome[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.outcome[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.outcome[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.outcome[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.outcome[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.outcome[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.outcome[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.outcome[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.outcome[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.outcome[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.outcome[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.outcome[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.outcome[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-10.fields.outcome[].content/option-2.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.outcome[].content/option-2.value/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-2.value/option-1.kind
Type: string; required in containing object
const: "access"
### entities[]/option-10.fields.outcome[].content/option-2.value/option-1.result
Type: string; required in containing object
enum: ["accessible","inaccessible","unknown"]
### entities[]/option-10.fields.outcome[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "identity"
### entities[]/option-10.fields.outcome[].content/option-2.value/option-2.result
Type: string; required in containing object
enum: ["matches","does_not_match","unknown"]
### entities[]/option-10.fields.outcome[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.outcome[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.outcome[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.outcome[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.outcome[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.outcome[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.outcome[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.outcome[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.outcome[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.outcome[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.outcome[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.outcome[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.outcome[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.outcome[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.outcome[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.outcome[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-10.fields.outcome[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-10.fields.outcome[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-10.fields.outcome[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.outcome[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-10.fields.outcome[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.outcome[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.outcome[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.outcome[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.outcome[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.outcome[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.outcome[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.outcome[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.outcome[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.outcome[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.outcome[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.outcome[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.outcome[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.outcome[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.notes
Type: list of object; optional
Sourced notes assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-10.fields.notes[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.notes[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-10.fields.notes[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-10.fields.notes[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.notes[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.notes[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.notes[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.notes[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.notes[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.notes[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.notes[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.notes[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.notes[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.notes[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.notes[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.notes[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.notes[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.notes[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.notes[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-10.fields.notes[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.notes[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.notes[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.notes[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.notes[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.notes[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.notes[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.notes[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.notes[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.notes[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.notes[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.notes[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.notes[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.notes[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.notes[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.notes[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.notes[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-10.fields.notes[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-10.fields.notes[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-10.fields.notes[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.notes[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-10.fields.notes[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.notes[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.notes[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.notes[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.notes[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.notes[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.notes[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.notes[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.notes[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.notes[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.notes[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.notes[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.notes[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.notes[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.identifierId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.identifierAssertionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
## Citations and attributable reviews
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
Cite one exact edition and preserve the reviewer, method and inputs behind an interpretation.
Schema: urn:disclosureos:experimental:claim-history:0.4.0
Export: @disclosureos/records/experimental/v2/claims/schema/0.4.0
### kind
Type: string; required in containing object
Identifies the document kind.
const: "claim_history"
### schemaVersion
Type: string; required in containing object
The explicit document contract version.
const: "0.4.0"
### id
Type: string; required in containing object
A scoped document identity.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### contextRefs
Type: list of object; required in containing object
Exact contextual snapshots used by this document.
### contextRefs[]
Type: object
Extra fields: Not allowed in this object
### contextRefs[].documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### contextRefs[].schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### contextRefs[].sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entityRefs
Type: list of object; required in containing object
Exact research entity snapshots used by this history.
### entityRefs[]
Type: object
Extra fields: Not allowed in this object
### entityRefs[].documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entityRefs[].schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:research-entities:0.2.0"
### entityRefs[].sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation
Type: object; required in containing object
The factual record under its own contract.
Extra fields: Not allowed in this object
### observation.kind
Type: string; required in containing object
const: "observation"
### observation.schemaVersion
Type: string; required in containing object
const: "0.1.0"
### observation.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.status
Type: string; required in containing object
enum: ["draft","published","withdrawn"]
### observation.createdAt
Type: string; required in containing object
### observation.createdAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.createdAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.createdAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.createdAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.updatedAt
Type: string; required in containing object
### observation.updatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.updatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.updatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.updatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.summary
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.eventTime
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.eventTime/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.state
Type: string; required in containing object
const: "known"
### observation.eventTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### observation.eventTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### observation.eventTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### observation.eventTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.eventTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### observation.eventTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.eventTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### observation.eventTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### observation.eventTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.eventTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.eventTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### observation.eventTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.eventTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### observation.eventTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.eventTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### observation.eventTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.eventTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### observation.eventTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.eventTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### observation.eventTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### observation.eventTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.eventTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.eventTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### observation.eventTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.eventTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.eventTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### observation.eventTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.eventTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### observation.eventTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.eventTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### observation.eventTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### observation.eventTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.eventTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.eventTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### observation.eventTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.eventTime/option-1.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-1.sourceRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-1.selection
Type: object; optional
Extra fields: Not allowed in this object
### observation.eventTime/option-1.selection.assertionRef
Type: string; required in containing object
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-1.selection.consideredAssertionRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-1.selection.consideredAssertionRefs[]
Type: string
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-1.selection.methodRef
Type: string; required in containing object
pattern: "^method:[^\\s:]+(?![\\s\\S])"
### observation.eventTime/option-1.selection.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-1.selection.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-1.selection.evaluatedAt
Type: string; required in containing object
### observation.eventTime/option-1.selection.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-1.selection.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.selection.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-1.selection.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-1.selection.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-1.uncertainty
Type: choice; optional
Choose: Exactly one of the alternatives below
### observation.eventTime/option-1.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.eventTime/option-1.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.eventTime/option-1.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.eventTime/option-1.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.eventTime/option-1.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-1.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-1.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-1.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.eventTime/option-1.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.eventTime/option-1.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-1.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-1.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-1.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.eventTime/option-1.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.eventTime/option-1.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.eventTime/option-1.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.eventTime/option-1.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-1.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-1.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.state
Type: string; required in containing object
const: "approximate"
### observation.eventTime/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### observation.eventTime/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### observation.eventTime/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### observation.eventTime/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.eventTime/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### observation.eventTime/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.eventTime/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### observation.eventTime/option-2.value/option-1/option-3.value
Type: string; required in containing object
### observation.eventTime/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.eventTime/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.eventTime/option-2.value/option-1/option-4.value
Type: string; required in containing object
### observation.eventTime/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.eventTime/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### observation.eventTime/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.eventTime/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### observation.eventTime/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.eventTime/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### observation.eventTime/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.eventTime/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### observation.eventTime/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### observation.eventTime/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.eventTime/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.eventTime/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### observation.eventTime/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.eventTime/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.eventTime/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### observation.eventTime/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.eventTime/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### observation.eventTime/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.eventTime/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### observation.eventTime/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### observation.eventTime/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.eventTime/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.eventTime/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### observation.eventTime/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.eventTime/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-2.selection
Type: object; optional
Extra fields: Not allowed in this object
### observation.eventTime/option-2.selection.assertionRef
Type: string; required in containing object
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-2.selection.consideredAssertionRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-2.selection.consideredAssertionRefs[]
Type: string
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-2.selection.methodRef
Type: string; required in containing object
pattern: "^method:[^\\s:]+(?![\\s\\S])"
### observation.eventTime/option-2.selection.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.selection.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.selection.evaluatedAt
Type: string; required in containing object
### observation.eventTime/option-2.selection.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-2.selection.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.selection.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-2.selection.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-2.selection.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.uncertainty
Type: choice; optional
Choose: Exactly one of the alternatives below
### observation.eventTime/option-2.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.eventTime/option-2.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.eventTime/option-2.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.eventTime/option-2.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.eventTime/option-2.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-2.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-2.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.eventTime/option-2.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.eventTime/option-2.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-2.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-2.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.eventTime/option-2.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.eventTime/option-2.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.eventTime/option-2.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.eventTime/option-2.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-2.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-3.state
Type: string; required in containing object
const: "unknown"
### observation.eventTime/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### observation.eventTime/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-4.state
Type: string; required in containing object
const: "redacted"
### observation.eventTime/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.state
Type: string; required in containing object
const: "known"
### observation.position/option-1.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.latitude
Type: number; required in containing object
minimum: -90
maximum: 90
### observation.position/option-1.value/option-1.longitude
Type: number; required in containing object
minimum: -180
maximum: 180
### observation.position/option-1.value/option-1.kind
Type: string; required in containing object
const: "geodetic"
### observation.position/option-1.value/option-1.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.altitude
Type: object; optional
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.altitude.value
Type: number; required in containing object
### observation.position/option-1.value/option-1.altitude.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.altitude.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-1.altitude.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.altitude.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-1.value/option-1.altitude.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.altitude.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.altitude.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.altitude.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-1.value/option-1.altitude.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.altitude.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.altitude.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.altitude.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.uncertainty
Type: object; optional
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.latitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-1.uncertainty.latitude/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.latitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-1.value/option-1.uncertainty.latitude/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.latitude/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.uncertainty.latitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.uncertainty.latitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-1.value/option-1.uncertainty.latitude/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.latitude/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.uncertainty.latitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.uncertainty.latitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.uncertainty.longitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-1.uncertainty.longitude/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.longitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-1.value/option-1.uncertainty.longitude/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.longitude/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.uncertainty.longitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.uncertainty.longitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-1.value/option-1.uncertainty.longitude/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.longitude/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.uncertainty.longitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.uncertainty.longitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.kind
Type: string; required in containing object
const: "cartesian"
### observation.position/option-1.value/option-2.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.x
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.x.value
Type: number; required in containing object
### observation.position/option-1.value/option-2.x.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.x.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-2.x.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.x.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-1.value/option-2.x.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-1.value/option-2.x.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.x.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-1.value/option-2.x.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.x.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.x.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.x.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.x.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.x.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-1.value/option-2.x.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.x.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.x.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.x.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.x.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-1.value/option-2.x.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-1.value/option-2.x.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.x.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-1.value/option-2.x.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.x.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.x.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.x.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.y
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.y.value
Type: number; required in containing object
### observation.position/option-1.value/option-2.y.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.y.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-2.y.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.y.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-1.value/option-2.y.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-1.value/option-2.y.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.y.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-1.value/option-2.y.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.y.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.y.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.y.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.y.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.y.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-1.value/option-2.y.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.y.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.y.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.y.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.y.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-1.value/option-2.y.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-1.value/option-2.y.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.y.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-1.value/option-2.y.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.y.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.y.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.y.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.z
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.z.value
Type: number; required in containing object
### observation.position/option-1.value/option-2.z.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.z.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-2.z.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.z.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-1.value/option-2.z.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-1.value/option-2.z.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.z.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-1.value/option-2.z.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.z.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.z.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.z.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.z.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.z.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-1.value/option-2.z.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.z.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.z.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.z.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.z.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-1.value/option-2.z.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-1.value/option-2.z.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.z.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-1.value/option-2.z.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.z.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.z.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.z.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.sourceRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.selection
Type: object; optional
Extra fields: Not allowed in this object
### observation.position/option-1.selection.assertionRef
Type: string; required in containing object
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.selection.consideredAssertionRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.selection.consideredAssertionRefs[]
Type: string
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.selection.methodRef
Type: string; required in containing object
pattern: "^method:[^\\s:]+(?![\\s\\S])"
### observation.position/option-1.selection.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.selection.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.selection.evaluatedAt
Type: string; required in containing object
### observation.position/option-1.selection.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.position/option-1.selection.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.position/option-1.selection.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.position/option-1.selection.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.position/option-1.selection.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.state
Type: string; required in containing object
const: "approximate"
### observation.position/option-2.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.latitude
Type: number; required in containing object
minimum: -90
maximum: 90
### observation.position/option-2.value/option-1.longitude
Type: number; required in containing object
minimum: -180
maximum: 180
### observation.position/option-2.value/option-1.kind
Type: string; required in containing object
const: "geodetic"
### observation.position/option-2.value/option-1.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.altitude
Type: object; optional
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.altitude.value
Type: number; required in containing object
### observation.position/option-2.value/option-1.altitude.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.altitude.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-1.altitude.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.altitude.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-2.value/option-1.altitude.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.altitude.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.altitude.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.altitude.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-2.value/option-1.altitude.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.altitude.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.altitude.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.altitude.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.uncertainty
Type: object; optional
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.latitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-1.uncertainty.latitude/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.latitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-2.value/option-1.uncertainty.latitude/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.latitude/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.uncertainty.latitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.uncertainty.latitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-2.value/option-1.uncertainty.latitude/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.latitude/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.uncertainty.latitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.uncertainty.latitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.uncertainty.longitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-1.uncertainty.longitude/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.longitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-2.value/option-1.uncertainty.longitude/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.longitude/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.uncertainty.longitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.uncertainty.longitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-2.value/option-1.uncertainty.longitude/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.longitude/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.uncertainty.longitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.uncertainty.longitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.kind
Type: string; required in containing object
const: "cartesian"
### observation.position/option-2.value/option-2.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.x
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.x.value
Type: number; required in containing object
### observation.position/option-2.value/option-2.x.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.x.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-2.x.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.x.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-2.value/option-2.x.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-2.value/option-2.x.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.x.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-2.value/option-2.x.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.x.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.x.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.x.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.x.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.x.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-2.value/option-2.x.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.x.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.x.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.x.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.x.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-2.value/option-2.x.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-2.value/option-2.x.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.x.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-2.value/option-2.x.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.x.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.x.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.x.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.y
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.y.value
Type: number; required in containing object
### observation.position/option-2.value/option-2.y.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.y.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-2.y.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.y.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-2.value/option-2.y.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-2.value/option-2.y.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.y.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-2.value/option-2.y.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.y.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.y.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.y.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.y.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.y.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-2.value/option-2.y.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.y.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.y.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.y.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.y.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-2.value/option-2.y.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-2.value/option-2.y.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.y.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-2.value/option-2.y.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.y.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.y.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.y.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.z
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.z.value
Type: number; required in containing object
### observation.position/option-2.value/option-2.z.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.z.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-2.z.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.z.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-2.value/option-2.z.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-2.value/option-2.z.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.z.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-2.value/option-2.z.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.z.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.z.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.z.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.z.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.z.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-2.value/option-2.z.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.z.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.z.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.z.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.z.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-2.value/option-2.z.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-2.value/option-2.z.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.z.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-2.value/option-2.z.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.z.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.z.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.z.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.selection
Type: object; optional
Extra fields: Not allowed in this object
### observation.position/option-2.selection.assertionRef
Type: string; required in containing object
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.selection.consideredAssertionRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.selection.consideredAssertionRefs[]
Type: string
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.selection.methodRef
Type: string; required in containing object
pattern: "^method:[^\\s:]+(?![\\s\\S])"
### observation.position/option-2.selection.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.selection.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.selection.evaluatedAt
Type: string; required in containing object
### observation.position/option-2.selection.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.position/option-2.selection.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.position/option-2.selection.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.position/option-2.selection.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.position/option-2.selection.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-3.state
Type: string; required in containing object
const: "unknown"
### observation.position/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### observation.position/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-4.state
Type: string; required in containing object
const: "redacted"
### observation.position/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.sources
Type: list of object; required in containing object
### observation.sources[]
Type: object
Extra fields: Not allowed in this object
### observation.sources[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.sources[].kind
Type: string; required in containing object
enum: ["document","testimony","instrument_data","other","unknown"]
### observation.sources[].access
Type: string; required in containing object
enum: ["public","restricted","withheld","unknown"]
### observation.sources[].title
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.sources[].uri
Type: string; optional
format: "uri"
### observation.sources[].digest
Type: object; optional
Extra fields: Not allowed in this object
### observation.sources[].digest.algorithm
Type: string; required in containing object
const: "sha256"
### observation.sources[].digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation.products
Type: list of choice; required in containing object
### observation.products[]
Type: choice
Choose: Exactly one of the alternatives below
### observation.products[]/option-1
Type: object
Extra fields: Not allowed in this object
### observation.products[]/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.products[]/option-1.format
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.products[]/option-1.access
Type: string; required in containing object
enum: ["public","restricted","withheld","unknown"]
### observation.products[]/option-1.uri
Type: string; optional
format: "uri"
### observation.products[]/option-1.digest
Type: object; optional
Extra fields: Not allowed in this object
### observation.products[]/option-1.digest.algorithm
Type: string; required in containing object
const: "sha256"
### observation.products[]/option-1.digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation.products[]/option-1.kind
Type: string; required in containing object
const: "raw"
### observation.products[]/option-1.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.products[]/option-1.sourceRefs[]
Type: string
pattern: "^(?:source):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.products[]/option-2
Type: object
Extra fields: Not allowed in this object
### observation.products[]/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.products[]/option-2.format
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.products[]/option-2.access
Type: string; required in containing object
enum: ["public","restricted","withheld","unknown"]
### observation.products[]/option-2.uri
Type: string; optional
format: "uri"
### observation.products[]/option-2.digest
Type: object; optional
Extra fields: Not allowed in this object
### observation.products[]/option-2.digest.algorithm
Type: string; required in containing object
const: "sha256"
### observation.products[]/option-2.digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation.products[]/option-2.kind
Type: string; required in containing object
const: "derived"
### observation.products[]/option-2.generatedBy
Type: string; required in containing object
pattern: "^(?:process):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.methods
Type: list of object; required in containing object
### observation.methods[]
Type: object
Extra fields: Not allowed in this object
### observation.methods[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.methods[].version
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.methods[].description
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.methods[].uri
Type: string; optional
format: "uri"
### observation.frames
Type: list of choice; required in containing object
### observation.frames[]
Type: choice
Choose: Exactly one of the alternatives below
### observation.frames[]/option-1
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.frames[]/option-1.kind
Type: string; required in containing object
const: "geodetic"
### observation.frames[]/option-1.definition
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.frames[]/option-1.definition/option-1
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.definition/option-1.state
Type: string; required in containing object
const: "identified"
### observation.frames[]/option-1.definition/option-1.authority
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.definition/option-1.code
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.definition/option-1.revision
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.definition/option-2
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.definition/option-2.state
Type: string; required in containing object
const: "described"
### observation.frames[]/option-1.definition/option-2.description
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.definition/option-3
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.definition/option-3.state
Type: string; required in containing object
const: "unknown"
### observation.frames[]/option-1.definition/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.angularUnit
Type: string; required in containing object
const: "deg"
### observation.frames[]/option-1.vertical
Type: object; optional
Extra fields: Not allowed in this object
### observation.frames[]/option-1.vertical.definition
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.frames[]/option-1.vertical.definition/option-1
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.vertical.definition/option-1.state
Type: string; required in containing object
const: "identified"
### observation.frames[]/option-1.vertical.definition/option-1.authority
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.vertical.definition/option-1.code
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.vertical.definition/option-1.revision
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.vertical.definition/option-2
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.vertical.definition/option-2.state
Type: string; required in containing object
const: "described"
### observation.frames[]/option-1.vertical.definition/option-2.description
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.vertical.definition/option-3
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.vertical.definition/option-3.state
Type: string; required in containing object
const: "unknown"
### observation.frames[]/option-1.vertical.definition/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.vertical.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-2
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.frames[]/option-2.kind
Type: string; required in containing object
const: "cartesian"
### observation.frames[]/option-2.definition
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.frames[]/option-2.definition/option-1
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-2.definition/option-1.state
Type: string; required in containing object
const: "identified"
### observation.frames[]/option-2.definition/option-1.authority
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-2.definition/option-1.code
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-2.definition/option-1.revision
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.frames[]/option-2.definition/option-2
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-2.definition/option-2.state
Type: string; required in containing object
const: "described"
### observation.frames[]/option-2.definition/option-2.description
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-2.definition/option-3
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-2.definition/option-3.state
Type: string; required in containing object
const: "unknown"
### observation.frames[]/option-2.definition/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions
Type: list of choice; required in containing object
### observation.assertions[]
Type: choice
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-1.field
Type: string; required in containing object
const: "eventTime"
### observation.assertions[]/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### observation.assertions[]/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### observation.assertions[]/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.assertions[]/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### observation.assertions[]/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.assertions[]/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### observation.assertions[]/option-1.value/option-1/option-3.value
Type: string; required in containing object
### observation.assertions[]/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.assertions[]/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.assertions[]/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.assertions[]/option-1.value/option-1/option-4.value
Type: string; required in containing object
### observation.assertions[]/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.assertions[]/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.assertions[]/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.assertions[]/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.assertions[]/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.assertions[]/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### observation.assertions[]/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### observation.assertions[]/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.assertions[]/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### observation.assertions[]/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.assertions[]/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### observation.assertions[]/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### observation.assertions[]/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.assertions[]/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.assertions[]/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.assertions[]/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### observation.assertions[]/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.assertions[]/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.assertions[]/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.assertions[]/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.assertions[]/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.assertions[]/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### observation.assertions[]/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.assertions[]/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### observation.assertions[]/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.assertions[]/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### observation.assertions[]/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### observation.assertions[]/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.assertions[]/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.assertions[]/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.assertions[]/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### observation.assertions[]/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.assertions[]/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.assertions[]/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.assertions[]/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.assertions[]/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.assertions[]/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### observation.assertions[]/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation.assertions[]/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### observation.assertions[]/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### observation.assertions[]/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### observation.assertions[]/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### observation.assertions[]/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### observation.assertions[]/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.field
Type: string; required in containing object
const: "position"
### observation.assertions[]/option-2.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.latitude
Type: number; required in containing object
minimum: -90
maximum: 90
### observation.assertions[]/option-2.value/option-1.longitude
Type: number; required in containing object
minimum: -180
maximum: 180
### observation.assertions[]/option-2.value/option-1.kind
Type: string; required in containing object
const: "geodetic"
### observation.assertions[]/option-2.value/option-1.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.altitude
Type: object; optional
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.altitude.value
Type: number; required in containing object
### observation.assertions[]/option-2.value/option-1.altitude.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.uncertainty
Type: object; optional
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.kind
Type: string; required in containing object
const: "cartesian"
### observation.assertions[]/option-2.value/option-2.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.x
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.x.value
Type: number; required in containing object
### observation.assertions[]/option-2.value/option-2.x.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.x.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.y
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.y.value
Type: number; required in containing object
### observation.assertions[]/option-2.value/option-2.y.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.y.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.z
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.z.value
Type: number; required in containing object
### observation.assertions[]/option-2.value/option-2.z.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.z.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### observation.assertions[]/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation.assertions[]/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### observation.assertions[]/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### observation.assertions[]/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### observation.assertions[]/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### observation.assertions[]/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### observation.assertions[]/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-3.field
Type: string; required in containing object
const: "measurement"
### observation.assertions[]/option-3.measurementId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-3.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.value.value
Type: number; required in containing object
### observation.assertions[]/option-3.value.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-3.value.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-3.value.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.value.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-3.value.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-3.value.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.value.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-3.value.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-3.value.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-3.value.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-3.value.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-3.value.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.value.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-3.value.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-3.value.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-3.value.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-3.value.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-3.value.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-3.value.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-3.value.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.value.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-3.value.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-3.value.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-3.value.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-3.value.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-3.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.provenance.sourceRef
Type: string; required in containing object
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-3.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### observation.assertions[]/option-3.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation.assertions[]/option-3.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-3.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### observation.assertions[]/option-3.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### observation.assertions[]/option-3.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### observation.assertions[]/option-3.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-3.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-3.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### observation.assertions[]/option-3.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### observation.assertions[]/option-3.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-3.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.measurements
Type: list of object; required in containing object
### observation.measurements[]
Type: object
Extra fields: Not allowed in this object
### observation.measurements[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].quantity
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].value
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.measurements[].value.value
Type: number; required in containing object
### observation.measurements[].value.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].value.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.measurements[].value.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.measurements[].value.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.measurements[].value.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.measurements[].value.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.measurements[].value.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.measurements[].value.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.measurements[].value.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].value.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.measurements[].value.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].value.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.measurements[].value.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.measurements[].value.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.measurements[].value.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].value.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.measurements[].value.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].value.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.measurements[].value.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.measurements[].value.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.measurements[].value.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.measurements[].value.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.measurements[].value.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].value.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.measurements[].value.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.measurements[].sourceRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].frameRef
Type: string; optional
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].selection
Type: object; optional
Extra fields: Not allowed in this object
### observation.measurements[].selection.assertionRef
Type: string; required in containing object
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].selection.consideredAssertionRefs
Type: list of string; required in containing object
minItems: 1
### observation.measurements[].selection.consideredAssertionRefs[]
Type: string
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].selection.methodRef
Type: string; required in containing object
pattern: "^method:[^\\s:]+(?![\\s\\S])"
### observation.measurements[].selection.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].selection.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].selection.evaluatedAt
Type: string; required in containing object
### observation.measurements[].selection.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.measurements[].selection.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.measurements[].selection.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.measurements[].selection.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.measurements[].selection.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.processing
Type: list of object; required in containing object
### observation.processing[]
Type: object
Extra fields: Not allowed in this object
### observation.processing[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.processing[].methodRef
Type: string; required in containing object
pattern: "^(?:method):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.processing[].methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.processing[].performedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.processing[].performedAt
Type: string; required in containing object
### observation.processing[].performedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.processing[].performedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.processing[].performedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.processing[].performedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.processing[].inputRefs
Type: list of string; required in containing object
minItems: 1
### observation.processing[].inputRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.processing[].outputRefs
Type: list of string; required in containing object
minItems: 1
### observation.processing[].outputRefs[]
Type: string
pattern: "^(?:product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.extensions
Type: object; optional
### observation.extensions/keys
Type: string
pattern: "^[a-z][a-z0-9_-]*(?:\\.[a-z0-9_-]+)+(?![\\s\\S])"
### observation.extensions/value
Type: JSON value
Reference: #/$defs/__schema30
Value: Arbitrary JSON; extension contents are not semantically checked by the core.
### claims
Type: list of choice; required in containing object
Source statements and attributed assessments with edition-specific citations.
### claims[]
Type: choice
Choose: At least one of the alternatives below
### claims[]/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.recordedAt
Type: string; required in containing object
### claims[]/option-1.recordedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-1.recordedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-1.recordedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-1.recordedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-1.topic
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-1.subject
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-1.subject/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-1.kind
Type: string; required in containing object
const: "observation"
### claims[]/option-1.subject/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.kind
Type: string; required in containing object
const: "entity"
### claims[]/option-1.subject/option-2.reference
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:research-entities:0.2.0"
### claims[]/option-1.subject/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-1.subject/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "witness"
### claims[]/option-1.subject/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-1.field
Type: string; optional
enum: ["publicIdentity","anonymous","willingToBeIdentified","category","role","organization","experienceYears","securityClearance","isProfessionalObserver","hasAviationExperience","hasMilitaryExperience","hasScientificBackground","hasPriorUAPKnowledge","wasSkepticPrior","description"]
### claims[]/option-1.subject/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "account"
### claims[]/option-1.subject/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-2.field
Type: string; optional
enum: ["speakerWitnessIds","recorder","context","recordedTime","dateCertainty","eventContext","content","summary","sourceDocument","interviewAvailable","writtenReportAvailable","underOath","custodyStatus","supportRefs"]
### claims[]/option-1.subject/option-2.reference.target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-3.kind
Type: string; required in containing object
const: "procedure"
### claims[]/option-1.subject/option-2.reference.target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-3.field
Type: string; optional
enum: ["procedureType","witnessId","accountId","administered","passed","performedAt","context","sourceDocument"]
### claims[]/option-1.subject/option-2.reference.target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-4.kind
Type: string; required in containing object
const: "witness_group"
### claims[]/option-1.subject/option-2.reference.target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-4.field
Type: string; optional
enum: ["witnessIds","reportedCount","categories","militaryWitnesses","aviationWitnesses","professionalObservers","descriptions"]
### claims[]/option-1.subject/option-2.reference.target/option-5
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-5.kind
Type: string; required in containing object
const: "source_edition"
### claims[]/option-1.subject/option-2.reference.target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-5.field
Type: string; optional
enum: ["title","type","author","organization","issuedAt","archiveLocation","primaryDisplay","originalUrl","archiveUrl","reference","isPrimarySource","documentType","originatingAgency","controlNumbers","foiaRequestNumber","originalClassification","classificationLevel","pageCount","redactionLevel","redactionDescription","redactionPercent","notes"]
### claims[]/option-1.subject/option-2.reference.target/option-6
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-6.kind
Type: string; required in containing object
const: "document_event"
### claims[]/option-1.subject/option-2.reference.target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-6.field
Type: string; optional
enum: ["eventType","occurredAt","authority","reference","marking","notes"]
### claims[]/option-1.subject/option-2.reference.target/option-7
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-7.kind
Type: string; required in containing object
const: "digital_artifact"
### claims[]/option-1.subject/option-2.reference.target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-7.field
Type: string; optional
enum: ["declaredHashes","device","manufacturer","model","software","originalFilename","originalCreationDate","gpsCoordinates","metadataPreserved","metadataStripped","strippedReason","custodyStatus","provenanceChainDescription","derivedFromArtifactIds","lastUpdated","notes"]
### claims[]/option-1.subject/option-2.reference.target/option-8
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-8.kind
Type: string; required in containing object
const: "digital_custody_action"
### claims[]/option-1.subject/option-2.reference.target/option-8.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-8.field
Type: string; optional
enum: ["action","occurredAt","from","to","location","reference","notes"]
### claims[]/option-1.subject/option-2.reference.target/option-9
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-9.kind
Type: string; required in containing object
const: "external_identifier"
### claims[]/option-1.subject/option-2.reference.target/option-9.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-9.field
Type: string; optional
enum: ["value","primaryDisplay","notes"]
### claims[]/option-1.subject/option-2.reference.target/option-10
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-10.kind
Type: string; required in containing object
const: "identifier_check"
### claims[]/option-1.subject/option-2.reference.target/option-10.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-10.field
Type: string; optional
enum: ["checkedAt","agent","method","methodVersion","outcome","notes"]
### claims[]/option-1.subject/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.kind
Type: string; required in containing object
const: "context"
### claims[]/option-1.subject/option-3.reference
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-3.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### claims[]/option-1.subject/option-3.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-1.subject/option-3.reference.target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-1.subject/option-3.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### claims[]/option-1.subject/option-3.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-3.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### claims[]/option-1.subject/option-3.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.reference.target/option-2.kind
Type: string; required in containing object
const: "reported_object"
### claims[]/option-1.subject/option-3.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-3.reference.target/option-2.field
Type: string; optional
enum: ["shape","sizeDescription","color","secondaryColors","luminosity","sound","soundDescription","surfaceDetails","formation","structuralFeatures","countDescription","speedDescription","altitudeDescription","flightPath","maneuvers","maneuverDescriptions","trajectoryDescription","radarContactReported","infraredSignatureReported"]
### claims[]/option-1.subject/option-3.reference.target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.reference.target/option-3.kind
Type: string; required in containing object
const: "place"
### claims[]/option-1.subject/option-3.reference.target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-3.reference.target/option-3.field
Type: string; optional
enum: ["name","country","countryCode","region","city","address","position","coordinatePrecision","coordinatesApproximate","elevationSource","siteType","secondarySiteTypes","terrain","airspaceClass","proximity","infrastructureSensitivity","sensitivity"]
### claims[]/option-1.subject/option-3.reference.target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.reference.target/option-4.kind
Type: string; required in containing object
const: "platform"
### claims[]/option-1.subject/option-3.reference.target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-3.reference.target/option-4.field
Type: string; optional
enum: ["role","placeId","name","type","designation","callsign","flightNumber","squadron","mission","operator","radarContact","weaponsSystemEngaged","interceptAttempted"]
### claims[]/option-1.subject/option-3.reference.target/option-5
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.reference.target/option-5.kind
Type: string; required in containing object
const: "environment"
### claims[]/option-1.subject/option-3.reference.target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-3.reference.target/option-5.field
Type: string; optional
enum: ["placeId","platformId","temporalId","observedAt","weather","visibility","cloudCover","windDescription","celestialConditions","moonPhase","precipitation"]
### claims[]/option-1.subject/option-3.reference.target/option-6
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.reference.target/option-6.kind
Type: string; required in containing object
const: "temporal"
### claims[]/option-1.subject/option-3.reference.target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-3.reference.target/option-6.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### claims[]/option-1.subject/option-3.reference.target/option-7
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.reference.target/option-7.kind
Type: string; required in containing object
const: "collection"
### claims[]/option-1.subject/option-3.reference.target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-3.reference.target/option-7.field
Type: string; optional
enum: ["sensorType","detectionMethod","productRefs","acquisitionIds","retentionStatus","rawDataAvailable","anomalies","correlationDescription","alignmentDescription","notes"]
### claims[]/option-1.subject/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-4.kind
Type: string; required in containing object
const: "measurement"
### claims[]/option-1.subject/option-4.measurementId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.supersedes
Type: list of string; optional
minItems: 1
### claims[]/option-1.supersedes[]
Type: string
pattern: "^claim:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.kind
Type: string; required in containing object
const: "source_assertion"
### claims[]/option-1.text
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-1.reportedLevel
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### claims[]/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### claims[]/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### claims[]/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### claims[]/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### claims[]/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### claims[]/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### claims[]/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### claims[]/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### claims[]/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### claims[]/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-1.editionCitation
Type: object; optional
A citation bound to an exact edition declaration and artifact digest. Similar titles do not permit edition substitution.
Extra fields: Not allowed in this object
### claims[]/option-1.editionCitation.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-1.editionCitation.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.editionCitation.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:research-entities:0.2.0"
### claims[]/option-1.editionCitation.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-1.editionCitation.editionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.editionCitation.artifact
Type: object; required in containing object
One exact artifact in the scoped observation inventory. A URL, title or legacy hash cannot substitute for this identity.
Extra fields: Not allowed in this object
### claims[]/option-1.editionCitation.artifact.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.editionCitation.artifact.digest
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-1.editionCitation.artifact.digest.algorithm
Type: string; required in containing object
const: "sha256"
### claims[]/option-1.editionCitation.artifact.digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-1.editionCitation.locator
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-1.editionCitation.locator/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.editionCitation.locator/option-1.kind
Type: string; required in containing object
const: "page"
### claims[]/option-1.editionCitation.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### claims[]/option-1.editionCitation.locator/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.editionCitation.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### claims[]/option-1.editionCitation.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### claims[]/option-1.editionCitation.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### claims[]/option-1.editionCitation.locator/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.editionCitation.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### claims[]/option-1.editionCitation.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### claims[]/option-1.reportedArtifactReview
Type: object; optional
An attributed authenticity or source-credibility review, not an automatic result of snapshot validation.
Extra fields: Not allowed in this object
### claims[]/option-1.reportedArtifactReview.verifier
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-1.reportedArtifactReview.organization
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-1.reportedArtifactReview.credentials
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-1.reportedArtifactReview.reviewedAt
Type: choice; optional
Choose: At least one of the alternatives below
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1
Type: choice
Choose: Exactly one of the alternatives below
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-3.value
Type: string; required in containing object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-4.value
Type: string; required in containing object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.kind
Type: string; required in containing object
const: "interval"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-3.value
Type: string; required in containing object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-4.value
Type: string; required in containing object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-3.value
Type: string; required in containing object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-4.value
Type: string; required in containing object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### claims[]/option-1.reportedArtifactReview.verificationMethod
Type: string; optional
Method used to verify media authenticity.
enum: ["metadata_analysis","forensic_analysis","hash_verification","chain_of_custody","source_confirmation","expert_review","ai_analysis","other"]
### claims[]/option-1.reportedArtifactReview.methodDescription
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-1.reportedArtifactReview.result
Type: string; optional
Outcome of an authenticity verification.
enum: ["authentic","likely_authentic","inconclusive","likely_manipulated","manipulated","ai_generated","deepfake","composite","unknown"]
### claims[]/option-1.reportedArtifactReview.confidence
Type: string; optional
enum: ["high","medium","low","unassessed"]
### claims[]/option-1.reportedArtifactReview.sourceCredibility
Type: string; optional
Trust tier of a source — an orthogonal axis to confidence and temporal certainty.
enum: ["official","verified","credible","unverified","questionable","disputed","unknown"]
### claims[]/option-1.reportedArtifactReview.findings
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-1.reportedArtifactReview.reportRef
Type: string; optional
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.reportedArtifactReview.reportUrl
Type: string; optional
format: "uri"
### claims[]/option-1.reportedArtifactReview.manipulationDetected
Type: boolean; optional
### claims[]/option-1.reportedArtifactReview.manipulationDescription
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-1.reportedArtifactReview.notes
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.recordedAt
Type: string; required in containing object
### claims[]/option-2.recordedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-2.recordedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-2.recordedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-2.recordedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-2.topic
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-2.subject
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-2.subject/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-1.kind
Type: string; required in containing object
const: "observation"
### claims[]/option-2.subject/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.kind
Type: string; required in containing object
const: "entity"
### claims[]/option-2.subject/option-2.reference
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:research-entities:0.2.0"
### claims[]/option-2.subject/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-2.subject/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "witness"
### claims[]/option-2.subject/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-1.field
Type: string; optional
enum: ["publicIdentity","anonymous","willingToBeIdentified","category","role","organization","experienceYears","securityClearance","isProfessionalObserver","hasAviationExperience","hasMilitaryExperience","hasScientificBackground","hasPriorUAPKnowledge","wasSkepticPrior","description"]
### claims[]/option-2.subject/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "account"
### claims[]/option-2.subject/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-2.field
Type: string; optional
enum: ["speakerWitnessIds","recorder","context","recordedTime","dateCertainty","eventContext","content","summary","sourceDocument","interviewAvailable","writtenReportAvailable","underOath","custodyStatus","supportRefs"]
### claims[]/option-2.subject/option-2.reference.target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-3.kind
Type: string; required in containing object
const: "procedure"
### claims[]/option-2.subject/option-2.reference.target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-3.field
Type: string; optional
enum: ["procedureType","witnessId","accountId","administered","passed","performedAt","context","sourceDocument"]
### claims[]/option-2.subject/option-2.reference.target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-4.kind
Type: string; required in containing object
const: "witness_group"
### claims[]/option-2.subject/option-2.reference.target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-4.field
Type: string; optional
enum: ["witnessIds","reportedCount","categories","militaryWitnesses","aviationWitnesses","professionalObservers","descriptions"]
### claims[]/option-2.subject/option-2.reference.target/option-5
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-5.kind
Type: string; required in containing object
const: "source_edition"
### claims[]/option-2.subject/option-2.reference.target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-5.field
Type: string; optional
enum: ["title","type","author","organization","issuedAt","archiveLocation","primaryDisplay","originalUrl","archiveUrl","reference","isPrimarySource","documentType","originatingAgency","controlNumbers","foiaRequestNumber","originalClassification","classificationLevel","pageCount","redactionLevel","redactionDescription","redactionPercent","notes"]
### claims[]/option-2.subject/option-2.reference.target/option-6
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-6.kind
Type: string; required in containing object
const: "document_event"
### claims[]/option-2.subject/option-2.reference.target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-6.field
Type: string; optional
enum: ["eventType","occurredAt","authority","reference","marking","notes"]
### claims[]/option-2.subject/option-2.reference.target/option-7
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-7.kind
Type: string; required in containing object
const: "digital_artifact"
### claims[]/option-2.subject/option-2.reference.target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-7.field
Type: string; optional
enum: ["declaredHashes","device","manufacturer","model","software","originalFilename","originalCreationDate","gpsCoordinates","metadataPreserved","metadataStripped","strippedReason","custodyStatus","provenanceChainDescription","derivedFromArtifactIds","lastUpdated","notes"]
### claims[]/option-2.subject/option-2.reference.target/option-8
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-8.kind
Type: string; required in containing object
const: "digital_custody_action"
### claims[]/option-2.subject/option-2.reference.target/option-8.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-8.field
Type: string; optional
enum: ["action","occurredAt","from","to","location","reference","notes"]
### claims[]/option-2.subject/option-2.reference.target/option-9
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-9.kind
Type: string; required in containing object
const: "external_identifier"
### claims[]/option-2.subject/option-2.reference.target/option-9.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-9.field
Type: string; optional
enum: ["value","primaryDisplay","notes"]
### claims[]/option-2.subject/option-2.reference.target/option-10
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-10.kind
Type: string; required in containing object
const: "identifier_check"
### claims[]/option-2.subject/option-2.reference.target/option-10.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-10.field
Type: string; optional
enum: ["checkedAt","agent","method","methodVersion","outcome","notes"]
### claims[]/option-2.subject/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.kind
Type: string; required in containing object
const: "context"
### claims[]/option-2.subject/option-3.reference
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-3.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### claims[]/option-2.subject/option-3.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-2.subject/option-3.reference.target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-2.subject/option-3.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### claims[]/option-2.subject/option-3.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-3.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### claims[]/option-2.subject/option-3.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.reference.target/option-2.kind
Type: string; required in containing object
const: "reported_object"
### claims[]/option-2.subject/option-3.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-3.reference.target/option-2.field
Type: string; optional
enum: ["shape","sizeDescription","color","secondaryColors","luminosity","sound","soundDescription","surfaceDetails","formation","structuralFeatures","countDescription","speedDescription","altitudeDescription","flightPath","maneuvers","maneuverDescriptions","trajectoryDescription","radarContactReported","infraredSignatureReported"]
### claims[]/option-2.subject/option-3.reference.target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.reference.target/option-3.kind
Type: string; required in containing object
const: "place"
### claims[]/option-2.subject/option-3.reference.target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-3.reference.target/option-3.field
Type: string; optional
enum: ["name","country","countryCode","region","city","address","position","coordinatePrecision","coordinatesApproximate","elevationSource","siteType","secondarySiteTypes","terrain","airspaceClass","proximity","infrastructureSensitivity","sensitivity"]
### claims[]/option-2.subject/option-3.reference.target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.reference.target/option-4.kind
Type: string; required in containing object
const: "platform"
### claims[]/option-2.subject/option-3.reference.target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-3.reference.target/option-4.field
Type: string; optional
enum: ["role","placeId","name","type","designation","callsign","flightNumber","squadron","mission","operator","radarContact","weaponsSystemEngaged","interceptAttempted"]
### claims[]/option-2.subject/option-3.reference.target/option-5
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.reference.target/option-5.kind
Type: string; required in containing object
const: "environment"
### claims[]/option-2.subject/option-3.reference.target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-3.reference.target/option-5.field
Type: string; optional
enum: ["placeId","platformId","temporalId","observedAt","weather","visibility","cloudCover","windDescription","celestialConditions","moonPhase","precipitation"]
### claims[]/option-2.subject/option-3.reference.target/option-6
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.reference.target/option-6.kind
Type: string; required in containing object
const: "temporal"
### claims[]/option-2.subject/option-3.reference.target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-3.reference.target/option-6.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### claims[]/option-2.subject/option-3.reference.target/option-7
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.reference.target/option-7.kind
Type: string; required in containing object
const: "collection"
### claims[]/option-2.subject/option-3.reference.target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-3.reference.target/option-7.field
Type: string; optional
enum: ["sensorType","detectionMethod","productRefs","acquisitionIds","retentionStatus","rawDataAvailable","anomalies","correlationDescription","alignmentDescription","notes"]
### claims[]/option-2.subject/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-4.kind
Type: string; required in containing object
const: "measurement"
### claims[]/option-2.subject/option-4.measurementId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.supersedes
Type: list of string; optional
minItems: 1
### claims[]/option-2.supersedes[]
Type: string
pattern: "^claim:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.kind
Type: string; required in containing object
const: "assessment"
### claims[]/option-2.inputRefs
Type: list of string; required in containing object
### claims[]/option-2.inputRefs[]
Type: string
pattern: "^(?:claim|source|product|assertion|measurement):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs
Type: list of object; optional
### claims[]/option-2.contextInputRefs[]
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### claims[]/option-2.contextInputRefs[].document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-2.contextInputRefs[].target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].target/option-1.kind
Type: string; required in containing object
const: "event"
### claims[]/option-2.contextInputRefs[].target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### claims[]/option-2.contextInputRefs[].target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].target/option-2.kind
Type: string; required in containing object
const: "reported_object"
### claims[]/option-2.contextInputRefs[].target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target/option-2.field
Type: string; optional
enum: ["shape","sizeDescription","color","secondaryColors","luminosity","sound","soundDescription","surfaceDetails","formation","structuralFeatures","countDescription","speedDescription","altitudeDescription","flightPath","maneuvers","maneuverDescriptions","trajectoryDescription","radarContactReported","infraredSignatureReported"]
### claims[]/option-2.contextInputRefs[].target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].target/option-3.kind
Type: string; required in containing object
const: "place"
### claims[]/option-2.contextInputRefs[].target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target/option-3.field
Type: string; optional
enum: ["name","country","countryCode","region","city","address","position","coordinatePrecision","coordinatesApproximate","elevationSource","siteType","secondarySiteTypes","terrain","airspaceClass","proximity","infrastructureSensitivity","sensitivity"]
### claims[]/option-2.contextInputRefs[].target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].target/option-4.kind
Type: string; required in containing object
const: "platform"
### claims[]/option-2.contextInputRefs[].target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target/option-4.field
Type: string; optional
enum: ["role","placeId","name","type","designation","callsign","flightNumber","squadron","mission","operator","radarContact","weaponsSystemEngaged","interceptAttempted"]
### claims[]/option-2.contextInputRefs[].target/option-5
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].target/option-5.kind
Type: string; required in containing object
const: "environment"
### claims[]/option-2.contextInputRefs[].target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target/option-5.field
Type: string; optional
enum: ["placeId","platformId","temporalId","observedAt","weather","visibility","cloudCover","windDescription","celestialConditions","moonPhase","precipitation"]
### claims[]/option-2.contextInputRefs[].target/option-6
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].target/option-6.kind
Type: string; required in containing object
const: "temporal"
### claims[]/option-2.contextInputRefs[].target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target/option-6.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### claims[]/option-2.contextInputRefs[].target/option-7
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].target/option-7.kind
Type: string; required in containing object
const: "collection"
### claims[]/option-2.contextInputRefs[].target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target/option-7.field
Type: string; optional
enum: ["sensorType","detectionMethod","productRefs","acquisitionIds","retentionStatus","rawDataAvailable","anomalies","correlationDescription","alignmentDescription","notes"]
### claims[]/option-2.contextInputRefs[].assertionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs
Type: list of object; optional
### claims[]/option-2.entityInputRefs[]
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:research-entities:0.2.0"
### claims[]/option-2.entityInputRefs[].document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-2.entityInputRefs[].target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].target/option-1.kind
Type: string; required in containing object
const: "witness"
### claims[]/option-2.entityInputRefs[].target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target/option-1.field
Type: string; optional
enum: ["publicIdentity","anonymous","willingToBeIdentified","category","role","organization","experienceYears","securityClearance","isProfessionalObserver","hasAviationExperience","hasMilitaryExperience","hasScientificBackground","hasPriorUAPKnowledge","wasSkepticPrior","description"]
### claims[]/option-2.entityInputRefs[].target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].target/option-2.kind
Type: string; required in containing object
const: "account"
### claims[]/option-2.entityInputRefs[].target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target/option-2.field
Type: string; optional
enum: ["speakerWitnessIds","recorder","context","recordedTime","dateCertainty","eventContext","content","summary","sourceDocument","interviewAvailable","writtenReportAvailable","underOath","custodyStatus","supportRefs"]
### claims[]/option-2.entityInputRefs[].target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].target/option-3.kind
Type: string; required in containing object
const: "procedure"
### claims[]/option-2.entityInputRefs[].target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target/option-3.field
Type: string; optional
enum: ["procedureType","witnessId","accountId","administered","passed","performedAt","context","sourceDocument"]
### claims[]/option-2.entityInputRefs[].target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].target/option-4.kind
Type: string; required in containing object
const: "witness_group"
### claims[]/option-2.entityInputRefs[].target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target/option-4.field
Type: string; optional
enum: ["witnessIds","reportedCount","categories","militaryWitnesses","aviationWitnesses","professionalObservers","descriptions"]
### claims[]/option-2.entityInputRefs[].target/option-5
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].target/option-5.kind
Type: string; required in containing object
const: "source_edition"
### claims[]/option-2.entityInputRefs[].target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target/option-5.field
Type: string; optional
enum: ["title","type","author","organization","issuedAt","archiveLocation","primaryDisplay","originalUrl","archiveUrl","reference","isPrimarySource","documentType","originatingAgency","controlNumbers","foiaRequestNumber","originalClassification","classificationLevel","pageCount","redactionLevel","redactionDescription","redactionPercent","notes"]
### claims[]/option-2.entityInputRefs[].target/option-6
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].target/option-6.kind
Type: string; required in containing object
const: "document_event"
### claims[]/option-2.entityInputRefs[].target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target/option-6.field
Type: string; optional
enum: ["eventType","occurredAt","authority","reference","marking","notes"]
### claims[]/option-2.entityInputRefs[].target/option-7
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].target/option-7.kind
Type: string; required in containing object
const: "digital_artifact"
### claims[]/option-2.entityInputRefs[].target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target/option-7.field
Type: string; optional
enum: ["declaredHashes","device","manufacturer","model","software","originalFilename","originalCreationDate","gpsCoordinates","metadataPreserved","metadataStripped","strippedReason","custodyStatus","provenanceChainDescription","derivedFromArtifactIds","lastUpdated","notes"]
### claims[]/option-2.entityInputRefs[].target/option-8
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].target/option-8.kind
Type: string; required in containing object
const: "digital_custody_action"
### claims[]/option-2.entityInputRefs[].target/option-8.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target/option-8.field
Type: string; optional
enum: ["action","occurredAt","from","to","location","reference","notes"]
### claims[]/option-2.entityInputRefs[].target/option-9
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].target/option-9.kind
Type: string; required in containing object
const: "external_identifier"
### claims[]/option-2.entityInputRefs[].target/option-9.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target/option-9.field
Type: string; optional
enum: ["value","primaryDisplay","notes"]
### claims[]/option-2.entityInputRefs[].target/option-10
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].target/option-10.kind
Type: string; required in containing object
const: "identifier_check"
### claims[]/option-2.entityInputRefs[].target/option-10.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target/option-10.field
Type: string; optional
enum: ["checkedAt","agent","method","methodVersion","outcome","notes"]
### claims[]/option-2.entityInputRefs[].assertionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-2.status
Type: string; required in containing object
const: "unassessed"
### claims[]/option-2.editionInputRefs
Type: list of object; optional
### claims[]/option-2.editionInputRefs[]
Type: object
A citation bound to an exact edition declaration and artifact digest. Similar titles do not permit edition substitution.
Extra fields: Not allowed in this object
### claims[]/option-2.editionInputRefs[].document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-2.editionInputRefs[].document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.editionInputRefs[].document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:research-entities:0.2.0"
### claims[]/option-2.editionInputRefs[].document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-2.editionInputRefs[].editionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.editionInputRefs[].artifact
Type: object; required in containing object
One exact artifact in the scoped observation inventory. A URL, title or legacy hash cannot substitute for this identity.
Extra fields: Not allowed in this object
### claims[]/option-2.editionInputRefs[].artifact.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.editionInputRefs[].artifact.digest
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-2.editionInputRefs[].artifact.digest.algorithm
Type: string; required in containing object
const: "sha256"
### claims[]/option-2.editionInputRefs[].artifact.digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-2.editionInputRefs[].locator
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-2.editionInputRefs[].locator/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.editionInputRefs[].locator/option-1.kind
Type: string; required in containing object
const: "page"
### claims[]/option-2.editionInputRefs[].locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### claims[]/option-2.editionInputRefs[].locator/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.editionInputRefs[].locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### claims[]/option-2.editionInputRefs[].locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### claims[]/option-2.editionInputRefs[].locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### claims[]/option-2.editionInputRefs[].locator/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.editionInputRefs[].locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### claims[]/option-2.editionInputRefs[].locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### claims[]/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.recordedAt
Type: string; required in containing object
### claims[]/option-3.recordedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-3.recordedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-3.recordedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-3.recordedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-3.topic
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-3.subject
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-3.subject/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-1.kind
Type: string; required in containing object
const: "observation"
### claims[]/option-3.subject/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.kind
Type: string; required in containing object
const: "entity"
### claims[]/option-3.subject/option-2.reference
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:research-entities:0.2.0"
### claims[]/option-3.subject/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-3.subject/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "witness"
### claims[]/option-3.subject/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-1.field
Type: string; optional
enum: ["publicIdentity","anonymous","willingToBeIdentified","category","role","organization","experienceYears","securityClearance","isProfessionalObserver","hasAviationExperience","hasMilitaryExperience","hasScientificBackground","hasPriorUAPKnowledge","wasSkepticPrior","description"]
### claims[]/option-3.subject/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "account"
### claims[]/option-3.subject/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-2.field
Type: string; optional
enum: ["speakerWitnessIds","recorder","context","recordedTime","dateCertainty","eventContext","content","summary","sourceDocument","interviewAvailable","writtenReportAvailable","underOath","custodyStatus","supportRefs"]
### claims[]/option-3.subject/option-2.reference.target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-3.kind
Type: string; required in containing object
const: "procedure"
### claims[]/option-3.subject/option-2.reference.target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-3.field
Type: string; optional
enum: ["procedureType","witnessId","accountId","administered","passed","performedAt","context","sourceDocument"]
### claims[]/option-3.subject/option-2.reference.target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-4.kind
Type: string; required in containing object
const: "witness_group"
### claims[]/option-3.subject/option-2.reference.target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-4.field
Type: string; optional
enum: ["witnessIds","reportedCount","categories","militaryWitnesses","aviationWitnesses","professionalObservers","descriptions"]
### claims[]/option-3.subject/option-2.reference.target/option-5
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-5.kind
Type: string; required in containing object
const: "source_edition"
### claims[]/option-3.subject/option-2.reference.target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-5.field
Type: string; optional
enum: ["title","type","author","organization","issuedAt","archiveLocation","primaryDisplay","originalUrl","archiveUrl","reference","isPrimarySource","documentType","originatingAgency","controlNumbers","foiaRequestNumber","originalClassification","classificationLevel","pageCount","redactionLevel","redactionDescription","redactionPercent","notes"]
### claims[]/option-3.subject/option-2.reference.target/option-6
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-6.kind
Type: string; required in containing object
const: "document_event"
### claims[]/option-3.subject/option-2.reference.target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-6.field
Type: string; optional
enum: ["eventType","occurredAt","authority","reference","marking","notes"]
### claims[]/option-3.subject/option-2.reference.target/option-7
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-7.kind
Type: string; required in containing object
const: "digital_artifact"
### claims[]/option-3.subject/option-2.reference.target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-7.field
Type: string; optional
enum: ["declaredHashes","device","manufacturer","model","software","originalFilename","originalCreationDate","gpsCoordinates","metadataPreserved","metadataStripped","strippedReason","custodyStatus","provenanceChainDescription","derivedFromArtifactIds","lastUpdated","notes"]
### claims[]/option-3.subject/option-2.reference.target/option-8
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-8.kind
Type: string; required in containing object
const: "digital_custody_action"
### claims[]/option-3.subject/option-2.reference.target/option-8.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-8.field
Type: string; optional
enum: ["action","occurredAt","from","to","location","reference","notes"]
### claims[]/option-3.subject/option-2.reference.target/option-9
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-9.kind
Type: string; required in containing object
const: "external_identifier"
### claims[]/option-3.subject/option-2.reference.target/option-9.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-9.field
Type: string; optional
enum: ["value","primaryDisplay","notes"]
### claims[]/option-3.subject/option-2.reference.target/option-10
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-10.kind
Type: string; required in containing object
const: "identifier_check"
### claims[]/option-3.subject/option-2.reference.target/option-10.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-10.field
Type: string; optional
enum: ["checkedAt","agent","method","methodVersion","outcome","notes"]
### claims[]/option-3.subject/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.kind
Type: string; required in containing object
const: "context"
### claims[]/option-3.subject/option-3.reference
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-3.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### claims[]/option-3.subject/option-3.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-3.subject/option-3.reference.target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-3.subject/option-3.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### claims[]/option-3.subject/option-3.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-3.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### claims[]/option-3.subject/option-3.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.reference.target/option-2.kind
Type: string; required in containing object
const: "reported_object"
### claims[]/option-3.subject/option-3.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-3.reference.target/option-2.field
Type: string; optional
enum: ["shape","sizeDescription","color","secondaryColors","luminosity","sound","soundDescription","surfaceDetails","formation","structuralFeatures","countDescription","speedDescription","altitudeDescription","flightPath","maneuvers","maneuverDescriptions","trajectoryDescription","radarContactReported","infraredSignatureReported"]
### claims[]/option-3.subject/option-3.reference.target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.reference.target/option-3.kind
Type: string; required in containing object
const: "place"
### claims[]/option-3.subject/option-3.reference.target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-3.reference.target/option-3.field
Type: string; optional
enum: ["name","country","countryCode","region","city","address","position","coordinatePrecision","coordinatesApproximate","elevationSource","siteType","secondarySiteTypes","terrain","airspaceClass","proximity","infrastructureSensitivity","sensitivity"]
### claims[]/option-3.subject/option-3.reference.target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.reference.target/option-4.kind
Type: string; required in containing object
const: "platform"
### claims[]/option-3.subject/option-3.reference.target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-3.reference.target/option-4.field
Type: string; optional
enum: ["role","placeId","name","type","designation","callsign","flightNumber","squadron","mission","operator","radarContact","weaponsSystemEngaged","interceptAttempted"]
### claims[]/option-3.subject/option-3.reference.target/option-5
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.reference.target/option-5.kind
Type: string; required in containing object
const: "environment"
### claims[]/option-3.subject/option-3.reference.target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-3.reference.target/option-5.field
Type: string; optional
enum: ["placeId","platformId","temporalId","observedAt","weather","visibility","cloudCover","windDescription","celestialConditions","moonPhase","precipitation"]
### claims[]/option-3.subject/option-3.reference.target/option-6
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.reference.target/option-6.kind
Type: string; required in containing object
const: "temporal"
### claims[]/option-3.subject/option-3.reference.target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-3.reference.target/option-6.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### claims[]/option-3.subject/option-3.reference.target/option-7
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.reference.target/option-7.kind
Type: string; required in containing object
const: "collection"
### claims[]/option-3.subject/option-3.reference.target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-3.reference.target/option-7.field
Type: string; optional
enum: ["sensorType","detectionMethod","productRefs","acquisitionIds","retentionStatus","rawDataAvailable","anomalies","correlationDescription","alignmentDescription","notes"]
### claims[]/option-3.subject/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-4.kind
Type: string; required in containing object
const: "measurement"
### claims[]/option-3.subject/option-4.measurementId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.supersedes
Type: list of string; optional
minItems: 1
### claims[]/option-3.supersedes[]
Type: string
pattern: "^claim:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.kind
Type: string; required in containing object
const: "assessment"
### claims[]/option-3.inputRefs
Type: list of string; required in containing object
### claims[]/option-3.inputRefs[]
Type: string
pattern: "^(?:claim|source|product|assertion|measurement):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs
Type: list of object; optional
### claims[]/option-3.contextInputRefs[]
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### claims[]/option-3.contextInputRefs[].document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-3.contextInputRefs[].target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].target/option-1.kind
Type: string; required in containing object
const: "event"
### claims[]/option-3.contextInputRefs[].target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### claims[]/option-3.contextInputRefs[].target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].target/option-2.kind
Type: string; required in containing object
const: "reported_object"
### claims[]/option-3.contextInputRefs[].target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target/option-2.field
Type: string; optional
enum: ["shape","sizeDescription","color","secondaryColors","luminosity","sound","soundDescription","surfaceDetails","formation","structuralFeatures","countDescription","speedDescription","altitudeDescription","flightPath","maneuvers","maneuverDescriptions","trajectoryDescription","radarContactReported","infraredSignatureReported"]
### claims[]/option-3.contextInputRefs[].target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].target/option-3.kind
Type: string; required in containing object
const: "place"
### claims[]/option-3.contextInputRefs[].target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target/option-3.field
Type: string; optional
enum: ["name","country","countryCode","region","city","address","position","coordinatePrecision","coordinatesApproximate","elevationSource","siteType","secondarySiteTypes","terrain","airspaceClass","proximity","infrastructureSensitivity","sensitivity"]
### claims[]/option-3.contextInputRefs[].target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].target/option-4.kind
Type: string; required in containing object
const: "platform"
### claims[]/option-3.contextInputRefs[].target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target/option-4.field
Type: string; optional
enum: ["role","placeId","name","type","designation","callsign","flightNumber","squadron","mission","operator","radarContact","weaponsSystemEngaged","interceptAttempted"]
### claims[]/option-3.contextInputRefs[].target/option-5
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].target/option-5.kind
Type: string; required in containing object
const: "environment"
### claims[]/option-3.contextInputRefs[].target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target/option-5.field
Type: string; optional
enum: ["placeId","platformId","temporalId","observedAt","weather","visibility","cloudCover","windDescription","celestialConditions","moonPhase","precipitation"]
### claims[]/option-3.contextInputRefs[].target/option-6
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].target/option-6.kind
Type: string; required in containing object
const: "temporal"
### claims[]/option-3.contextInputRefs[].target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target/option-6.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### claims[]/option-3.contextInputRefs[].target/option-7
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].target/option-7.kind
Type: string; required in containing object
const: "collection"
### claims[]/option-3.contextInputRefs[].target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target/option-7.field
Type: string; optional
enum: ["sensorType","detectionMethod","productRefs","acquisitionIds","retentionStatus","rawDataAvailable","anomalies","correlationDescription","alignmentDescription","notes"]
### claims[]/option-3.contextInputRefs[].assertionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs
Type: list of object; optional
### claims[]/option-3.entityInputRefs[]
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:research-entities:0.2.0"
### claims[]/option-3.entityInputRefs[].document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-3.entityInputRefs[].target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].target/option-1.kind
Type: string; required in containing object
const: "witness"
### claims[]/option-3.entityInputRefs[].target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target/option-1.field
Type: string; optional
enum: ["publicIdentity","anonymous","willingToBeIdentified","category","role","organization","experienceYears","securityClearance","isProfessionalObserver","hasAviationExperience","hasMilitaryExperience","hasScientificBackground","hasPriorUAPKnowledge","wasSkepticPrior","description"]
### claims[]/option-3.entityInputRefs[].target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].target/option-2.kind
Type: string; required in containing object
const: "account"
### claims[]/option-3.entityInputRefs[].target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target/option-2.field
Type: string; optional
enum: ["speakerWitnessIds","recorder","context","recordedTime","dateCertainty","eventContext","content","summary","sourceDocument","interviewAvailable","writtenReportAvailable","underOath","custodyStatus","supportRefs"]
### claims[]/option-3.entityInputRefs[].target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].target/option-3.kind
Type: string; required in containing object
const: "procedure"
### claims[]/option-3.entityInputRefs[].target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target/option-3.field
Type: string; optional
enum: ["procedureType","witnessId","accountId","administered","passed","performedAt","context","sourceDocument"]
### claims[]/option-3.entityInputRefs[].target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].target/option-4.kind
Type: string; required in containing object
const: "witness_group"
### claims[]/option-3.entityInputRefs[].target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target/option-4.field
Type: string; optional
enum: ["witnessIds","reportedCount","categories","militaryWitnesses","aviationWitnesses","professionalObservers","descriptions"]
### claims[]/option-3.entityInputRefs[].target/option-5
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].target/option-5.kind
Type: string; required in containing object
const: "source_edition"
### claims[]/option-3.entityInputRefs[].target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target/option-5.field
Type: string; optional
enum: ["title","type","author","organization","issuedAt","archiveLocation","primaryDisplay","originalUrl","archiveUrl","reference","isPrimarySource","documentType","originatingAgency","controlNumbers","foiaRequestNumber","originalClassification","classificationLevel","pageCount","redactionLevel","redactionDescription","redactionPercent","notes"]
### claims[]/option-3.entityInputRefs[].target/option-6
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].target/option-6.kind
Type: string; required in containing object
const: "document_event"
### claims[]/option-3.entityInputRefs[].target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target/option-6.field
Type: string; optional
enum: ["eventType","occurredAt","authority","reference","marking","notes"]
### claims[]/option-3.entityInputRefs[].target/option-7
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].target/option-7.kind
Type: string; required in containing object
const: "digital_artifact"
### claims[]/option-3.entityInputRefs[].target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target/option-7.field
Type: string; optional
enum: ["declaredHashes","device","manufacturer","model","software","originalFilename","originalCreationDate","gpsCoordinates","metadataPreserved","metadataStripped","strippedReason","custodyStatus","provenanceChainDescription","derivedFromArtifactIds","lastUpdated","notes"]
### claims[]/option-3.entityInputRefs[].target/option-8
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].target/option-8.kind
Type: string; required in containing object
const: "digital_custody_action"
### claims[]/option-3.entityInputRefs[].target/option-8.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target/option-8.field
Type: string; optional
enum: ["action","occurredAt","from","to","location","reference","notes"]
### claims[]/option-3.entityInputRefs[].target/option-9
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].target/option-9.kind
Type: string; required in containing object
const: "external_identifier"
### claims[]/option-3.entityInputRefs[].target/option-9.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target/option-9.field
Type: string; optional
enum: ["value","primaryDisplay","notes"]
### claims[]/option-3.entityInputRefs[].target/option-10
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].target/option-10.kind
Type: string; required in containing object
const: "identifier_check"
### claims[]/option-3.entityInputRefs[].target/option-10.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target/option-10.field
Type: string; optional
enum: ["checkedAt","agent","method","methodVersion","outcome","notes"]
### claims[]/option-3.entityInputRefs[].assertionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-3.status
Type: string; required in containing object
const: "assessed"
### claims[]/option-3.outcome
Type: string; required in containing object
enum: ["reported","confirmed","absent","inconclusive"]
### claims[]/option-3.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-3.evaluatedAt
Type: string; required in containing object
### claims[]/option-3.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-3.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-3.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-3.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-3.methodRef
Type: string; required in containing object
pattern: "^method:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-3.confidence
Type: number; optional
minimum: 0
maximum: 1
### claims[]/option-3.witnessReview
Type: object; optional
Attributable interpretation, separate from sourced qualifications; requires explicit inputs.
Extra fields: Not allowed in this object
### claims[]/option-3.witnessReview.rating
Type: string; optional
Qualitative confidence magnitude.
enum: ["very_high","high","moderate","low","very_low","unassessed"]
### claims[]/option-3.witnessReview.factors
Type: list of string; optional
Reviewer-selected factor labels; no built-in weighting or validation of their truth.
### claims[]/option-3.witnessReview.factors[]
Type: string
A factor strengthening witness credibility.
enum: ["professional_training","official_capacity","sworn_statement","contemporaneous_record","corroborating_witnesses","corroborating_evidence","consistent_account","no_apparent_motive","reputation_risk","security_clearance"]
### claims[]/option-3.witnessReview.detractors
Type: list of string; optional
Retained vocabulary for attributable reviews. Anonymity never adds a penalty automatically.
### claims[]/option-3.witnessReview.detractors[]
Type: string
A factor weakening witness credibility.
enum: ["anonymous","inconsistent_account","delayed_report","known_fabricator","financial_motive","single_witness","impaired_state","recovered_memory"]
### claims[]/option-3.witnessReview.consistentTestimony
Type: string; optional
enum: ["consistent","inconsistent","unknown"]
### claims[]/option-3.witnessReview.multipleIndependent
Type: string; optional
enum: ["independent","not_independent","unknown"]
### claims[]/option-3.witnessReview.notes
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-3.editionInputRefs
Type: list of object; optional
### claims[]/option-3.editionInputRefs[]
Type: object
A citation bound to an exact edition declaration and artifact digest. Similar titles do not permit edition substitution.
Extra fields: Not allowed in this object
### claims[]/option-3.editionInputRefs[].document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-3.editionInputRefs[].document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.editionInputRefs[].document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:research-entities:0.2.0"
### claims[]/option-3.editionInputRefs[].document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-3.editionInputRefs[].editionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.editionInputRefs[].artifact
Type: object; required in containing object
One exact artifact in the scoped observation inventory. A URL, title or legacy hash cannot substitute for this identity.
Extra fields: Not allowed in this object
### claims[]/option-3.editionInputRefs[].artifact.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.editionInputRefs[].artifact.digest
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-3.editionInputRefs[].artifact.digest.algorithm
Type: string; required in containing object
const: "sha256"
### claims[]/option-3.editionInputRefs[].artifact.digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-3.editionInputRefs[].locator
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-3.editionInputRefs[].locator/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.editionInputRefs[].locator/option-1.kind
Type: string; required in containing object
const: "page"
### claims[]/option-3.editionInputRefs[].locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### claims[]/option-3.editionInputRefs[].locator/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.editionInputRefs[].locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### claims[]/option-3.editionInputRefs[].locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### claims[]/option-3.editionInputRefs[].locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### claims[]/option-3.editionInputRefs[].locator/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.editionInputRefs[].locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### claims[]/option-3.editionInputRefs[].locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### claims[]/option-3.artifactReview
Type: object; optional
An attributed authenticity or source-credibility review, not an automatic result of snapshot validation.
Extra fields: Not allowed in this object
### claims[]/option-3.artifactReview.verifier
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-3.artifactReview.organization
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-3.artifactReview.credentials
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-3.artifactReview.reviewedAt
Type: choice; optional
Choose: At least one of the alternatives below
### claims[]/option-3.artifactReview.reviewedAt/option-1
Type: choice
Choose: Exactly one of the alternatives below
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-3.value
Type: string; required in containing object
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-4.value
Type: string; required in containing object
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### claims[]/option-3.artifactReview.reviewedAt/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.artifactReview.reviewedAt/option-2.kind
Type: string; required in containing object
const: "interval"
### claims[]/option-3.artifactReview.reviewedAt/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-3.value
Type: string; required in containing object
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-4.value
Type: string; required in containing object
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### claims[]/option-3.artifactReview.reviewedAt/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-3.value
Type: string; required in containing object
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-4.value
Type: string; required in containing object
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### claims[]/option-3.artifactReview.verificationMethod
Type: string; optional
Method used to verify media authenticity.
enum: ["metadata_analysis","forensic_analysis","hash_verification","chain_of_custody","source_confirmation","expert_review","ai_analysis","other"]
### claims[]/option-3.artifactReview.methodDescription
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-3.artifactReview.result
Type: string; optional
Outcome of an authenticity verification.
enum: ["authentic","likely_authentic","inconclusive","likely_manipulated","manipulated","ai_generated","deepfake","composite","unknown"]
### claims[]/option-3.artifactReview.confidence
Type: string; optional
enum: ["high","medium","low","unassessed"]
### claims[]/option-3.artifactReview.sourceCredibility
Type: string; optional
Trust tier of a source — an orthogonal axis to confidence and temporal certainty.
enum: ["official","verified","credible","unverified","questionable","disputed","unknown"]
### claims[]/option-3.artifactReview.findings
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-3.artifactReview.reportRef
Type: string; optional
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.artifactReview.reportUrl
Type: string; optional
format: "uri"
### claims[]/option-3.artifactReview.manipulationDetected
Type: boolean; optional
### claims[]/option-3.artifactReview.manipulationDescription
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-3.artifactReview.notes
Type: string; optional
minLength: 1
pattern: "\\S"
### extensions
Type: object; optional
Namespaced extra JSON outside the typed fields.
### extensions/keys
Type: string
pattern: "^[a-z][a-z0-9_-]*(?:\\.[a-z0-9_-]+)+(?![\\s\\S])"
### extensions/value
Type: JSON value
Reference: #/$defs/__schema30
Value: Arbitrary JSON; extension contents are not semantically checked by the core.
## Document selection
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
Identify document sources and their declared release context.
Schema: urn:disclosureos:experimental:released-document-selection:0.1.0
Export: @disclosureos/schema/experimental/v2/released-documents/schema
### kind
Type: string; required in containing object
Identifies the selection document.
const: "released_document_selection"
### schemaVersion
Type: string; required in containing object
The selection contract version.
const: "0.1.0"
### id
Type: string; required in containing object
An identifier for this selection.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### historyId
Type: string; required in containing object
The exact ID of the supplied claim history.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observationId
Type: string; required in containing object
The exact ID of its embedded observation.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### documents
Type: list of object; required in containing object
Selected document sources with declared release authority and reference, or an explicit unknown reason.
minItems: 1
### documents[]
Type: object
Extra fields: Not allowed in this object
### documents[].sourceRef
Type: string; required in containing object
pattern: "^source:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### documents[].release
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### documents[].release/option-1
Type: object
Extra fields: Not allowed in this object
### documents[].release/option-1.state
Type: string; required in containing object
const: "known"
### documents[].release/option-1.releasedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### documents[].release/option-1.reference
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### documents[].release/option-2
Type: object
Extra fields: Not allowed in this object
### documents[].release/option-2.state
Type: string; required in containing object
const: "unknown"
### documents[].release/option-2.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
# Acquisition and binding fields (/v2/docs/reference/instruments)
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
Extra fields: Not allowed at any of these three document roots. Use extensions for namespaced additional data.
## Acquisition context
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
Describe the equipment, its configuration and the circumstances of capture.
Schema: urn:disclosureos:experimental:acquisition-context:0.1.0
Export: @disclosureos/instruments/experimental/v2/acquisition/schema
### kind
Type: string; required in containing object
Identifies an acquisition context document.
const: "acquisition_context"
### schemaVersion
Type: string; required in containing object
The acquisition contract version, separate from the npm package version.
const: "0.1.0"
### id
Type: string; required in containing object
An identifier for this collection of instrument and capture declarations.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### instruments
Type: list of object; required in containing object
Physical equipment identities, including explicitly unknown identities.
### instruments[]
Type: object
Extra fields: Not allowed in this object
### instruments[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### instruments[].identity
Type: choice; required in containing object
Choose: At least one of the alternatives below
### instruments[].identity/option-1
Type: object
Extra fields: Not allowed in this object
### instruments[].identity/option-1.state
Type: string; required in containing object
const: "known"
### instruments[].identity/option-1.manufacturer
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### instruments[].identity/option-1.model
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### instruments[].identity/option-1.serialNumber
Type: string; optional
minLength: 1
pattern: "\\S"
### instruments[].identity/option-2
Type: object
Extra fields: Not allowed in this object
### instruments[].identity/option-2.state
Type: string; required in containing object
const: "unknown"
### instruments[].identity/option-2.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### manifests
Type: list of object; required in containing object
Pinned configuration revisions, their artifact declarations and available channels.
### manifests[]
Type: object
Extra fields: Not allowed in this object
### manifests[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### manifests[].instrumentRef
Type: string; required in containing object
pattern: "^instrument:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### manifests[].version
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### manifests[].publishedAt
Type: string; required in containing object
### manifests[].publishedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### manifests[].publishedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### manifests[].publishedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### manifests[].publishedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### manifests[].artifact
Type: object; required in containing object
Extra fields: Not allowed in this object
### manifests[].artifact.digest
Type: object; required in containing object
Extra fields: Not allowed in this object
### manifests[].artifact.digest.algorithm
Type: string; required in containing object
const: "sha256"
### manifests[].artifact.digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### manifests[].artifact.mediaType
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### manifests[].artifact.byteLength
Type: integer; required in containing object
minimum: 0
maximum: 9007199254740991
### manifests[].artifact.uri
Type: string; optional
format: "uri"
### manifests[].configuration
Type: object; required in containing object
Extra fields: Not allowed in this object
### manifests[].configuration.hardware
Type: choice; required in containing object
Choose: At least one of the alternatives below
### manifests[].configuration.hardware/option-1
Type: object
Extra fields: Not allowed in this object
### manifests[].configuration.hardware/option-1.state
Type: string; required in containing object
const: "known"
### manifests[].configuration.hardware/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### manifests[].configuration.hardware/option-2
Type: object
Extra fields: Not allowed in this object
### manifests[].configuration.hardware/option-2.state
Type: string; required in containing object
const: "unknown"
### manifests[].configuration.hardware/option-2.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### manifests[].configuration.firmware
Type: choice; required in containing object
Choose: At least one of the alternatives below
### manifests[].configuration.firmware/option-1
Type: object
Extra fields: Not allowed in this object
### manifests[].configuration.firmware/option-1.state
Type: string; required in containing object
const: "known"
### manifests[].configuration.firmware/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### manifests[].configuration.firmware/option-2
Type: object
Extra fields: Not allowed in this object
### manifests[].configuration.firmware/option-2.state
Type: string; required in containing object
const: "unknown"
### manifests[].configuration.firmware/option-2.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### manifests[].channels
Type: list of object; required in containing object
minItems: 1
### manifests[].channels[]
Type: object
Extra fields: Not allowed in this object
### manifests[].channels[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### manifests[].channels[].quantity
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### manifests[].channels[].unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### manifests[].channels[].sampling
Type: choice; required in containing object
Choose: At least one of the alternatives below
### manifests[].channels[].sampling/option-1
Type: object
Extra fields: Not allowed in this object
### manifests[].channels[].sampling/option-1.state
Type: string; required in containing object
const: "known"
### manifests[].channels[].sampling/option-1.rateHz
Type: number; required in containing object
exclusiveMinimum: 0
### manifests[].channels[].sampling/option-2
Type: object
Extra fields: Not allowed in this object
### manifests[].channels[].sampling/option-2.state
Type: string; required in containing object
const: "unknown"
### manifests[].channels[].sampling/option-2.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### deployments
Type: list of object; required in containing object
Where and when equipment was deployed with a particular configuration.
### deployments[]
Type: object
Extra fields: Not allowed in this object
### deployments[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### deployments[].instrumentRef
Type: string; required in containing object
pattern: "^instrument:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### deployments[].manifest
Type: choice; required in containing object
Choose: At least one of the alternatives below
### deployments[].manifest/option-1
Type: object
Extra fields: Not allowed in this object
### deployments[].manifest/option-1.state
Type: string; required in containing object
const: "pinned"
### deployments[].manifest/option-1.ref
Type: string; required in containing object
pattern: "^manifest:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### deployments[].manifest/option-2
Type: object
Extra fields: Not allowed in this object
### deployments[].manifest/option-2.state
Type: string; required in containing object
const: "unresolved"
### deployments[].manifest/option-2.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### deployments[].manifest/option-2.legacyRef
Type: string; optional
minLength: 1
pattern: "\\S"
### deployments[].period
Type: choice; required in containing object
Choose: At least one of the alternatives below
### deployments[].period/option-1
Type: object
Extra fields: Not allowed in this object
### deployments[].period/option-1.state
Type: string; required in containing object
const: "known"
### deployments[].period/option-1.start
Type: string; required in containing object
### deployments[].period/option-1.start/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### deployments[].period/option-1.start/constraint-2
Type: value
pattern: "^(?!0000)"
### deployments[].period/option-1.start/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### deployments[].period/option-1.start/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### deployments[].period/option-1.end
Type: string; required in containing object
### deployments[].period/option-1.end/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### deployments[].period/option-1.end/constraint-2
Type: value
pattern: "^(?!0000)"
### deployments[].period/option-1.end/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### deployments[].period/option-1.end/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### deployments[].period/option-1.timeScale
Type: string; required in containing object
const: "UTC"
### deployments[].period/option-2
Type: object
Extra fields: Not allowed in this object
### deployments[].period/option-2.state
Type: string; required in containing object
const: "unknown"
### deployments[].period/option-2.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### deployments[].site
Type: choice; required in containing object
Choose: At least one of the alternatives below
### deployments[].site/option-1
Type: object
Extra fields: Not allowed in this object
### deployments[].site/option-1.state
Type: string; required in containing object
const: "known"
### deployments[].site/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### deployments[].site/option-2
Type: object
Extra fields: Not allowed in this object
### deployments[].site/option-2.state
Type: string; required in containing object
const: "unknown"
### deployments[].site/option-2.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### calibrations
Type: list of object; required in containing object
Channel-specific calibration declarations, validity periods, reports and review state.
### calibrations[]
Type: object
Extra fields: Not allowed in this object
### calibrations[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### calibrations[].instrumentRef
Type: string; required in containing object
pattern: "^instrument:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### calibrations[].manifestRef
Type: string; required in containing object
pattern: "^manifest:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### calibrations[].channelId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### calibrations[].performedAt
Type: choice; required in containing object
Choose: At least one of the alternatives below
### calibrations[].performedAt/option-1
Type: object
Extra fields: Not allowed in this object
### calibrations[].performedAt/option-1.state
Type: string; required in containing object
const: "known"
### calibrations[].performedAt/option-1.value
Type: string; required in containing object
### calibrations[].performedAt/option-1.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### calibrations[].performedAt/option-1.value/constraint-2
Type: value
pattern: "^(?!0000)"
### calibrations[].performedAt/option-1.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### calibrations[].performedAt/option-1.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### calibrations[].performedAt/option-2
Type: object
Extra fields: Not allowed in this object
### calibrations[].performedAt/option-2.state
Type: string; required in containing object
const: "unknown"
### calibrations[].performedAt/option-2.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### calibrations[].validity
Type: choice; required in containing object
Choose: At least one of the alternatives below
### calibrations[].validity/option-1
Type: object
Extra fields: Not allowed in this object
### calibrations[].validity/option-1.state
Type: string; required in containing object
const: "known"
### calibrations[].validity/option-1.start
Type: string; required in containing object
### calibrations[].validity/option-1.start/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### calibrations[].validity/option-1.start/constraint-2
Type: value
pattern: "^(?!0000)"
### calibrations[].validity/option-1.start/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### calibrations[].validity/option-1.start/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### calibrations[].validity/option-1.end
Type: string; required in containing object
### calibrations[].validity/option-1.end/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### calibrations[].validity/option-1.end/constraint-2
Type: value
pattern: "^(?!0000)"
### calibrations[].validity/option-1.end/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### calibrations[].validity/option-1.end/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### calibrations[].validity/option-1.timeScale
Type: string; required in containing object
const: "UTC"
### calibrations[].validity/option-2
Type: object
Extra fields: Not allowed in this object
### calibrations[].validity/option-2.state
Type: string; required in containing object
const: "unknown"
### calibrations[].validity/option-2.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### calibrations[].method
Type: choice; required in containing object
Choose: At least one of the alternatives below
### calibrations[].method/option-1
Type: object
Extra fields: Not allowed in this object
### calibrations[].method/option-1.state
Type: string; required in containing object
const: "known"
### calibrations[].method/option-1.id
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### calibrations[].method/option-1.version
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### calibrations[].method/option-1.description
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### calibrations[].method/option-2
Type: object
Extra fields: Not allowed in this object
### calibrations[].method/option-2.state
Type: string; required in containing object
const: "unknown"
### calibrations[].method/option-2.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### calibrations[].report
Type: choice; required in containing object
Choose: At least one of the alternatives below
### calibrations[].report/option-1
Type: object
Extra fields: Not allowed in this object
### calibrations[].report/option-1.state
Type: string; required in containing object
const: "known"
### calibrations[].report/option-1.artifact
Type: object; required in containing object
Extra fields: Not allowed in this object
### calibrations[].report/option-1.artifact.digest
Type: object; required in containing object
Extra fields: Not allowed in this object
### calibrations[].report/option-1.artifact.digest.algorithm
Type: string; required in containing object
const: "sha256"
### calibrations[].report/option-1.artifact.digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### calibrations[].report/option-1.artifact.mediaType
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### calibrations[].report/option-1.artifact.byteLength
Type: integer; required in containing object
minimum: 0
maximum: 9007199254740991
### calibrations[].report/option-1.artifact.uri
Type: string; optional
format: "uri"
### calibrations[].report/option-2
Type: object
Extra fields: Not allowed in this object
### calibrations[].report/option-2.state
Type: string; required in containing object
const: "unknown"
### calibrations[].report/option-2.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### calibrations[].uncertainty
Type: choice; required in containing object
Choose: At least one of the alternatives below
### calibrations[].uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### calibrations[].uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### calibrations[].uncertainty/option-1.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### calibrations[].uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### calibrations[].uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### calibrations[].uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### calibrations[].uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### calibrations[].uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### calibrations[].uncertainty/option-3.kind
Type: string; required in containing object
const: "bound"
### calibrations[].uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### calibrations[].uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### calibrations[].uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### calibrations[].uncertainty/option-4.kind
Type: string; required in containing object
const: "expanded"
### calibrations[].uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### calibrations[].uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### calibrations[].uncertainty/option-4.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### calibrations[].uncertainty/option-4.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### calibrations[].review
Type: choice; required in containing object
Choose: At least one of the alternatives below
### calibrations[].review/option-1
Type: object
Extra fields: Not allowed in this object
### calibrations[].review/option-1.state
Type: string; required in containing object
const: "unreviewed"
### calibrations[].review/option-2
Type: object
Extra fields: Not allowed in this object
### calibrations[].review/option-2.state
Type: string; required in containing object
const: "unknown"
### calibrations[].review/option-2.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### calibrations[].review/option-3
Type: object
Extra fields: Not allowed in this object
### calibrations[].review/option-3.state
Type: string; required in containing object
const: "reviewed"
### calibrations[].review/option-3.reviewedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### calibrations[].review/option-3.reviewedAt
Type: string; required in containing object
### calibrations[].review/option-3.reviewedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### calibrations[].review/option-3.reviewedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### calibrations[].review/option-3.reviewedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### calibrations[].review/option-3.reviewedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### calibrations[].review/option-3.outcome
Type: string; required in containing object
enum: ["accepted","rejected","inconclusive"]
### calibrations[].review/option-3.report
Type: object; required in containing object
Extra fields: Not allowed in this object
### calibrations[].review/option-3.report.digest
Type: object; required in containing object
Extra fields: Not allowed in this object
### calibrations[].review/option-3.report.digest.algorithm
Type: string; required in containing object
const: "sha256"
### calibrations[].review/option-3.report.digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### calibrations[].review/option-3.report.mediaType
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### calibrations[].review/option-3.report.byteLength
Type: integer; required in containing object
minimum: 0
maximum: 9007199254740991
### calibrations[].review/option-3.report.uri
Type: string; optional
format: "uri"
### acquisitions
Type: list of object; required in containing object
Capture sessions: configuration, deployment, clock context and active channels.
### acquisitions[]
Type: object
Extra fields: Not allowed in this object
### acquisitions[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### acquisitions[].instrumentRef
Type: string; required in containing object
pattern: "^instrument:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### acquisitions[].manifest
Type: choice; required in containing object
Choose: At least one of the alternatives below
### acquisitions[].manifest/option-1
Type: object
Extra fields: Not allowed in this object
### acquisitions[].manifest/option-1.state
Type: string; required in containing object
const: "pinned"
### acquisitions[].manifest/option-1.ref
Type: string; required in containing object
pattern: "^manifest:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### acquisitions[].manifest/option-2
Type: object
Extra fields: Not allowed in this object
### acquisitions[].manifest/option-2.state
Type: string; required in containing object
const: "unresolved"
### acquisitions[].manifest/option-2.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### acquisitions[].manifest/option-2.legacyRef
Type: string; optional
minLength: 1
pattern: "\\S"
### acquisitions[].deployment
Type: choice; required in containing object
Choose: At least one of the alternatives below
### acquisitions[].deployment/option-1
Type: object
Extra fields: Not allowed in this object
### acquisitions[].deployment/option-1.state
Type: string; required in containing object
const: "pinned"
### acquisitions[].deployment/option-1.ref
Type: string; required in containing object
pattern: "^deployment:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### acquisitions[].deployment/option-2
Type: object
Extra fields: Not allowed in this object
### acquisitions[].deployment/option-2.state
Type: string; required in containing object
const: "unresolved"
### acquisitions[].deployment/option-2.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### acquisitions[].deployment/option-2.legacyRef
Type: string; optional
minLength: 1
pattern: "\\S"
### acquisitions[].time
Type: choice; required in containing object
Choose: At least one of the alternatives below
### acquisitions[].time/option-1
Type: object
Extra fields: Not allowed in this object
### acquisitions[].time/option-1.state
Type: string; required in containing object
const: "known"
### acquisitions[].time/option-1.kind
Type: string; required in containing object
const: "instant"
### acquisitions[].time/option-1.value
Type: string; required in containing object
### acquisitions[].time/option-1.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### acquisitions[].time/option-1.value/constraint-2
Type: value
pattern: "^(?!0000)"
### acquisitions[].time/option-1.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### acquisitions[].time/option-1.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### acquisitions[].time/option-1.timeScale
Type: string; required in containing object
const: "UTC"
### acquisitions[].time/option-2
Type: object
Extra fields: Not allowed in this object
### acquisitions[].time/option-2.state
Type: string; required in containing object
const: "known"
### acquisitions[].time/option-2.start
Type: string; required in containing object
### acquisitions[].time/option-2.start/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### acquisitions[].time/option-2.start/constraint-2
Type: value
pattern: "^(?!0000)"
### acquisitions[].time/option-2.start/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### acquisitions[].time/option-2.start/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### acquisitions[].time/option-2.end
Type: string; required in containing object
### acquisitions[].time/option-2.end/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### acquisitions[].time/option-2.end/constraint-2
Type: value
pattern: "^(?!0000)"
### acquisitions[].time/option-2.end/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### acquisitions[].time/option-2.end/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### acquisitions[].time/option-2.timeScale
Type: string; required in containing object
const: "UTC"
### acquisitions[].time/option-2.kind
Type: string; required in containing object
const: "interval"
### acquisitions[].time/option-3
Type: object
Extra fields: Not allowed in this object
### acquisitions[].time/option-3.state
Type: string; required in containing object
const: "unknown"
### acquisitions[].time/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### acquisitions[].classification
Type: string; required in containing object
enum: ["background","known_control","candidate","other","unknown"]
### acquisitions[].clock
Type: object; required in containing object
Extra fields: Not allowed in this object
### acquisitions[].clock.source
Type: choice; required in containing object
Choose: At least one of the alternatives below
### acquisitions[].clock.source/option-1
Type: object
Extra fields: Not allowed in this object
### acquisitions[].clock.source/option-1.state
Type: string; required in containing object
const: "known"
### acquisitions[].clock.source/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### acquisitions[].clock.source/option-2
Type: object
Extra fields: Not allowed in this object
### acquisitions[].clock.source/option-2.state
Type: string; required in containing object
const: "unknown"
### acquisitions[].clock.source/option-2.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### acquisitions[].clock.synchronization
Type: choice; required in containing object
Choose: At least one of the alternatives below
### acquisitions[].clock.synchronization/option-1
Type: object
Extra fields: Not allowed in this object
### acquisitions[].clock.synchronization/option-1.state
Type: string; required in containing object
const: "known"
### acquisitions[].clock.synchronization/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### acquisitions[].clock.synchronization/option-2
Type: object
Extra fields: Not allowed in this object
### acquisitions[].clock.synchronization/option-2.state
Type: string; required in containing object
const: "unknown"
### acquisitions[].clock.synchronization/option-2.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### acquisitions[].clock.resolution
Type: choice; required in containing object
Choose: At least one of the alternatives below
### acquisitions[].clock.resolution/option-1
Type: object
Extra fields: Not allowed in this object
### acquisitions[].clock.resolution/option-1.state
Type: string; required in containing object
const: "known"
### acquisitions[].clock.resolution/option-1.magnitude
Type: number; required in containing object
exclusiveMinimum: 0
### acquisitions[].clock.resolution/option-1.unit
Type: string; required in containing object
enum: ["s","ms","us","ns"]
### acquisitions[].clock.resolution/option-2
Type: object
Extra fields: Not allowed in this object
### acquisitions[].clock.resolution/option-2.state
Type: string; required in containing object
const: "unknown"
### acquisitions[].clock.resolution/option-2.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### acquisitions[].clock.uncertainty
Type: choice; required in containing object
Choose: At least one of the alternatives below
### acquisitions[].clock.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### acquisitions[].clock.uncertainty/option-1.state
Type: string; required in containing object
const: "known"
### acquisitions[].clock.uncertainty/option-1.magnitude
Type: number; required in containing object
minimum: 0
### acquisitions[].clock.uncertainty/option-1.unit
Type: string; required in containing object
enum: ["s","ms","us","ns"]
### acquisitions[].clock.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### acquisitions[].clock.uncertainty/option-2.state
Type: string; required in containing object
const: "unknown"
### acquisitions[].clock.uncertainty/option-2.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### acquisitions[].channels
Type: list of object; required in containing object
minItems: 1
### acquisitions[].channels[]
Type: object
Extra fields: Not allowed in this object
### acquisitions[].channels[].channelId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### acquisitions[].channels[].calibration
Type: choice; required in containing object
Choose: At least one of the alternatives below
### acquisitions[].channels[].calibration/option-1
Type: object
Extra fields: Not allowed in this object
### acquisitions[].channels[].calibration/option-1.state
Type: string; required in containing object
const: "pinned"
### acquisitions[].channels[].calibration/option-1.ref
Type: string; required in containing object
pattern: "^calibration:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### acquisitions[].channels[].calibration/option-2
Type: object
Extra fields: Not allowed in this object
### acquisitions[].channels[].calibration/option-2.state
Type: string; required in containing object
const: "unresolved"
### acquisitions[].channels[].calibration/option-2.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### acquisitions[].channels[].calibration/option-2.legacyRef
Type: string; optional
minLength: 1
pattern: "\\S"
### products
Type: list of object; required in containing object
Raw artifacts linked to the acquisition that produced them.
### products[]
Type: object
Extra fields: Not allowed in this object
### products[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### products[].acquisitionRef
Type: string; required in containing object
pattern: "^acquisition:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### products[].kind
Type: string; required in containing object
const: "raw"
### products[].artifact
Type: object; required in containing object
Extra fields: Not allowed in this object
### products[].artifact.digest
Type: object; required in containing object
Extra fields: Not allowed in this object
### products[].artifact.digest.algorithm
Type: string; required in containing object
const: "sha256"
### products[].artifact.digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### products[].artifact.mediaType
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### products[].artifact.byteLength
Type: integer; required in containing object
minimum: 0
maximum: 9007199254740991
### products[].artifact.uri
Type: string; optional
format: "uri"
### extensions
Type: object; optional
Namespaced JSON for additional information. The core does not validate its meaning.
### extensions/keys
Type: string
pattern: "^[a-z][a-z0-9_-]*(?:\\.[a-z0-9_-]+)+(?![\\s\\S])"
### extensions/value
Type: JSON value
Reference: #/$defs/__schema0
Value: Arbitrary JSON; extension contents are not semantically checked by the core.
## Connect the source and product
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
Link an observation source to physical equipment and its raw product to a capture artifact.
Schema: urn:disclosureos:experimental:acquisition-bindings:0.1.0
Export: @disclosureos/schema/experimental/v2/bindings/schema
### kind
Type: string; required in containing object
Identifies the mapping document.
const: "acquisition_bindings"
### schemaVersion
Type: string; required in containing object
The mapping contract version.
const: "0.1.0"
### id
Type: string; required in containing object
An identifier for this mapping document.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### historyId
Type: string; required in containing object
The claim history containing the observation.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observationId
Type: string; required in containing object
The observation being connected.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### contextId
Type: string; required in containing object
The acquisition context being connected.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### sources
Type: list of object; required in containing object
Source-to-instrument references across the two documents.
### sources[]
Type: object
Extra fields: Not allowed in this object
### sources[].sourceRef
Type: string; required in containing object
pattern: "^source:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### sources[].instrumentRef
Type: string; required in containing object
pattern: "^instrument:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### products
Type: list of object; required in containing object
Observation-product to acquisition-product references.
### products[]
Type: object
Extra fields: Not allowed in this object
### products[].observationProductRef
Type: string; required in containing object
pattern: "^product:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### products[].contextProductRef
Type: string; required in containing object
pattern: "^product:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### extensions
Type: object; optional
Namespaced JSON for additional information. The core does not validate its meaning.
### extensions/keys
Type: string
pattern: "^[a-z][a-z0-9_-]*(?:\\.[a-z0-9_-]+)+(?![\\s\\S])"
### extensions/value
Type: JSON value
Reference: #/$defs/__schema0
Value: Arbitrary JSON; extension contents are not semantically checked by the core.
## Connect the measurement
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
Identify the captured channel and explicit capture time supporting a measured value.
Schema: urn:disclosureos:experimental:measurement-bindings:0.1.0
Export: @disclosureos/schema/experimental/v2/measurements/schema
### kind
Type: string; required in containing object
Identifies the mapping document.
const: "measurement_bindings"
### schemaVersion
Type: string; required in containing object
The mapping contract version.
const: "0.1.0"
### id
Type: string; required in containing object
An identifier for this mapping document.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### historyId
Type: string; required in containing object
The claim history containing the observation.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observationId
Type: string; required in containing object
The observation being connected.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### contextId
Type: string; required in containing object
The acquisition context being connected.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### acquisitionBindingsId
Type: string; required in containing object
The acquisition mapping used by this measurement mapping.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### measurements
Type: list of object; required in containing object
One raw product, one captured channel and an explicit time for each supported measurement.
### measurements[]
Type: object
Extra fields: Not allowed in this object
### measurements[].measurementRef
Type: string; required in containing object
pattern: "^measurement:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### measurements[].observationProductRef
Type: string; required in containing object
pattern: "^product:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### measurements[].channelId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### measurements[].time
Type: choice; required in containing object
Choose: At least one of the alternatives below
### measurements[].time/option-1
Type: object
Extra fields: Not allowed in this object
### measurements[].time/option-1.state
Type: string; required in containing object
const: "unknown"
### measurements[].time/option-1.reason
Type: string; required in containing object
minLength: 1
### measurements[].time/option-2
Type: object
Extra fields: Not allowed in this object
### measurements[].time/option-2.state
Type: string; required in containing object
const: "known"
### measurements[].time/option-2.kind
Type: string; required in containing object
const: "instant"
### measurements[].time/option-2.value
Type: string; required in containing object
minLength: 1
### measurements[].time/option-2.timeScale
Type: string; required in containing object
const: "UTC"
### measurements[].time/option-3
Type: object
Extra fields: Not allowed in this object
### measurements[].time/option-3.state
Type: string; required in containing object
const: "known"
### measurements[].time/option-3.kind
Type: string; required in containing object
const: "interval"
### measurements[].time/option-3.start
Type: string; required in containing object
minLength: 1
### measurements[].time/option-3.end
Type: string; required in containing object
minLength: 1
### measurements[].time/option-3.timeScale
Type: string; required in containing object
const: "UTC"
### extensions
Type: object; optional
Namespaced JSON for additional information. The core does not validate its meaning.
### extensions/keys
Type: string
pattern: "^[a-z][a-z0-9_-]*(?:\\.[a-z0-9_-]+)+(?![\\s\\S])"
### extensions/value
Type: JSON value
Reference: #/$defs/__schema0
Value: Arbitrary JSON; extension contents are not semantically checked by the core.
# Material and laboratory fields (/v2/docs/reference/materials)
Use the [implementation guide](/v2/docs/physical-samples) for document assembly, evaluation and scope. This reference preserves the full nested contract, including alternatives, constraints and required fields. Search below to open matching branches.
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
## Materials and laboratory records
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
Explicit specimen identity, preparation, custody, analyses and results.
Schema: urn:disclosureos:experimental:research-entities:0.4.0
Export: @disclosureos/records/experimental/v2/entities/schema/0.4.0
### kind
Type: string; required in containing object
const: "research_entities"
### schemaVersion
Type: string; required in containing object
const: "0.4.0"
### id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observationRef
Type: object; required in containing object
Extra fields: Not allowed in this object
### observationRef.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observationRef.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation:0.1.0"
### observationRef.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### contextRefs
Type: list of object; required in containing object
### contextRefs[]
Type: object
Extra fields: Not allowed in this object
### contextRefs[].documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### contextRefs[].schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### contextRefs[].sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### recordedAt
Type: string; required in containing object
### recordedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### recordedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### recordedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### recordedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### recordedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities
Type: list of choice; required in containing object
minItems: 1
### entities[]
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.kind
Type: string; required in containing object
const: "witness"
### entities[]/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity
Type: list of object; optional
Sourced public identity assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.publicIdentity[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.publicIdentity[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.publicIdentity[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.publicIdentity[].content/option-1.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.publicIdentity[].content/option-1.value/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-1.value/option-1.kind
Type: string; required in containing object
const: "public_name"
### entities[]/option-1.fields.publicIdentity[].content/option-1.value/option-1.display
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "pseudonym"
### entities[]/option-1.fields.publicIdentity[].content/option-1.value/option-2.display
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-1.value/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-1.value/option-3.kind
Type: string; required in containing object
const: "withheld"
### entities[]/option-1.fields.publicIdentity[].content/option-1.value/option-3.display
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.publicIdentity[].content/option-2.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.publicIdentity[].content/option-2.value/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-2.value/option-1.kind
Type: string; required in containing object
const: "public_name"
### entities[]/option-1.fields.publicIdentity[].content/option-2.value/option-1.display
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "pseudonym"
### entities[]/option-1.fields.publicIdentity[].content/option-2.value/option-2.display
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-2.value/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-2.value/option-3.kind
Type: string; required in containing object
const: "withheld"
### entities[]/option-1.fields.publicIdentity[].content/option-2.value/option-3.display
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.publicIdentity[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.publicIdentity[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.publicIdentity[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.publicIdentity[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous
Type: list of object; optional
Sourced anonymous assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.anonymous[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.anonymous[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.anonymous[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.anonymous[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-1.fields.anonymous[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.anonymous[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-1.fields.anonymous[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.anonymous[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.anonymous[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.anonymous[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.anonymous[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified
Type: list of object; optional
Sourced willing to be identified assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.willingToBeIdentified[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.willingToBeIdentified[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.willingToBeIdentified[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category
Type: list of object; optional
Sourced category assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.category[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.category[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.category[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.category[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.value
Type: string; required in containing object
Professional/role category of a witness.
enum: ["military_pilot","military_aircrew","military_ground","military_naval","military_radar_operator","military_other","commercial_pilot","commercial_aircrew","private_pilot","air_traffic_controller","aviation_other","government_official","elected_official","intelligence_officer","law_enforcement","scientist","astronomer","meteorologist","engineer","medical_professional","maritime","civilian","civilian_group","anonymous","unknown"]
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.category[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.category[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.category[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.category[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.category[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.category[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.category[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.category[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.category[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.category[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.value
Type: string; required in containing object
Professional/role category of a witness.
enum: ["military_pilot","military_aircrew","military_ground","military_naval","military_radar_operator","military_other","commercial_pilot","commercial_aircrew","private_pilot","air_traffic_controller","aviation_other","government_official","elected_official","intelligence_officer","law_enforcement","scientist","astronomer","meteorologist","engineer","medical_professional","maritime","civilian","civilian_group","anonymous","unknown"]
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.category[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.category[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.category[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.category[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.category[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.category[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.category[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.category[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.category[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.category[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.category[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.category[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.category[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.category[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.category[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.category[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.category[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.category[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.category[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.category[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.category[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.category[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role
Type: list of object; optional
Sourced role assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.role[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.role[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.role[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.role[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.role[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.role[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.role[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.role[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.role[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.role[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.role[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.role[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.role[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.role[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.role[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.role[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.role[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.role[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.role[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.role[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.role[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.role[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.role[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.role[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.role[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.role[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.role[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.role[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.role[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.role[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.role[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.role[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.role[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.role[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.role[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.role[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization
Type: list of object; optional
Sourced organization assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.organization[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.organization[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.organization[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.organization[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.organization[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.organization[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.organization[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.organization[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.organization[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.organization[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears
Type: list of object; optional
Sourced experience years assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.experienceYears[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.experienceYears[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.value
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.experienceYears[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.value
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.experienceYears[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.experienceYears[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.experienceYears[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.experienceYears[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance
Type: list of object; optional
Sourced security clearance assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.securityClearance[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.securityClearance[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.value
Type: string; required in containing object
Security clearance level held by a witness.
enum: ["none","confidential","secret","top_secret","sci","unknown"]
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.securityClearance[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.value
Type: string; required in containing object
Security clearance level held by a witness.
enum: ["none","confidential","secret","top_secret","sci","unknown"]
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.securityClearance[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.securityClearance[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.securityClearance[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.securityClearance[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver
Type: list of object; optional
Sourced is professional observer assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.isProfessionalObserver[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.isProfessionalObserver[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience
Type: list of object; optional
Sourced has aviation experience assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.hasAviationExperience[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasAviationExperience[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.hasAviationExperience[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.hasAviationExperience[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience
Type: list of object; optional
Sourced has military experience assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.hasMilitaryExperience[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground
Type: list of object; optional
Sourced has scientific background assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.hasScientificBackground[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasScientificBackground[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.hasScientificBackground[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.hasScientificBackground[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge
Type: list of object; optional
Sourced has prior uapknowledge assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.hasPriorUAPKnowledge[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior
Type: list of object; optional
Sourced was skeptic prior assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.wasSkepticPrior[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.wasSkepticPrior[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description
Type: list of object; optional
Sourced description assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.description[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.description[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.description[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.description[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.description[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.description[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.description[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.description[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.description[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.description[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.description[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.description[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.description[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.description[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.description[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.description[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.description[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.description[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.description[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.description[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.description[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.kind
Type: string; required in containing object
const: "account"
### entities[]/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds
Type: list of object; optional
Sourced speaker witness ids assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.speakerWitnessIds[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.speakerWitnessIds[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.value[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.value[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.speakerWitnessIds[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder
Type: list of object; optional
Sourced recorder assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.recorder[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.recorder[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.recorder[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.recorder[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.recorder[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.recorder[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.recorder[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.recorder[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.recorder[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.recorder[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.recorder[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.recorder[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.recorder[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.recorder[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.recorder[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.recorder[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.recorder[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.recorder[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context
Type: list of object; optional
Sourced context assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.context[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.context[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.context[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.context[].content/option-1.value
Type: string; required in containing object
The setting in which testimony was given.
enum: ["sworn_affidavit","congressional_testimony","deposition","official_interview","written_statement","recorded_interview","informal_account","anonymous_tip","whistleblower_disclosure"]
### entities[]/option-2.fields.context[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.context[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.context[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.context[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.context[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.context[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.context[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.context[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.context[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.context[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.context[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.context[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.context[].content/option-2.value
Type: string; required in containing object
The setting in which testimony was given.
enum: ["sworn_affidavit","congressional_testimony","deposition","official_interview","written_statement","recorded_interview","informal_account","anonymous_tip","whistleblower_disclosure"]
### entities[]/option-2.fields.context[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.context[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.context[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.context[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.context[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.context[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.context[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.context[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.context[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.context[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.context[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.context[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.context[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.context[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.context[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.context[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.context[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.context[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.context[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.context[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.context[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.context[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.context[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.context[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.context[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.context[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.context[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime
Type: list of object; optional
Sourced recorded time assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.recordedTime[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.recordedTime[].content/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.recordedTime[].content/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-2.fields.recordedTime[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.recordedTime[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.recordedTime[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.recordedTime[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.recordedTime[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty
Type: list of object; optional
Sourced date certainty assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.dateCertainty[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.dateCertainty[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.dateCertainty[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.dateCertainty[].content/option-1.value
Type: string; required in containing object
enum: ["exact","approximate","estimated","unknown"]
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.dateCertainty[].content/option-2.value
Type: string; required in containing object
enum: ["exact","approximate","estimated","unknown"]
### entities[]/option-2.fields.dateCertainty[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.dateCertainty[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.dateCertainty[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.dateCertainty[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.dateCertainty[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext
Type: list of object; optional
Sourced event context assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.eventContext[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.eventContext[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.eventContext[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.value.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.value.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.value.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-2.fields.eventContext[].content/option-1.value.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-2.kind
Type: string; required in containing object
const: "reported_object"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-2.field
Type: string; optional
enum: ["shape","sizeDescription","color","secondaryColors","luminosity","sound","soundDescription","surfaceDetails","formation","structuralFeatures","countDescription","speedDescription","altitudeDescription","flightPath","maneuvers","maneuverDescriptions","trajectoryDescription","radarContactReported","infraredSignatureReported"]
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-3.kind
Type: string; required in containing object
const: "place"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-3.field
Type: string; optional
enum: ["name","country","countryCode","region","city","address","position","coordinatePrecision","coordinatesApproximate","elevationSource","siteType","secondarySiteTypes","terrain","airspaceClass","proximity","infrastructureSensitivity","sensitivity"]
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-4.kind
Type: string; required in containing object
const: "platform"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-4.field
Type: string; optional
enum: ["role","placeId","name","type","designation","callsign","flightNumber","squadron","mission","operator","radarContact","weaponsSystemEngaged","interceptAttempted"]
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-5.kind
Type: string; required in containing object
const: "environment"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-5.field
Type: string; optional
enum: ["placeId","platformId","temporalId","observedAt","weather","visibility","cloudCover","windDescription","celestialConditions","moonPhase","precipitation"]
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-6
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-6.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-6.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-7
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-7.kind
Type: string; required in containing object
const: "collection"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-7.field
Type: string; optional
enum: ["sensorType","detectionMethod","productRefs","acquisitionIds","retentionStatus","rawDataAvailable","anomalies","correlationDescription","alignmentDescription","notes"]
### entities[]/option-2.fields.eventContext[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.eventContext[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.value.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.value.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.value.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-2.fields.eventContext[].content/option-2.value.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-2.kind
Type: string; required in containing object
const: "reported_object"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-2.field
Type: string; optional
enum: ["shape","sizeDescription","color","secondaryColors","luminosity","sound","soundDescription","surfaceDetails","formation","structuralFeatures","countDescription","speedDescription","altitudeDescription","flightPath","maneuvers","maneuverDescriptions","trajectoryDescription","radarContactReported","infraredSignatureReported"]
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-3.kind
Type: string; required in containing object
const: "place"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-3.field
Type: string; optional
enum: ["name","country","countryCode","region","city","address","position","coordinatePrecision","coordinatesApproximate","elevationSource","siteType","secondarySiteTypes","terrain","airspaceClass","proximity","infrastructureSensitivity","sensitivity"]
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-4.kind
Type: string; required in containing object
const: "platform"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-4.field
Type: string; optional
enum: ["role","placeId","name","type","designation","callsign","flightNumber","squadron","mission","operator","radarContact","weaponsSystemEngaged","interceptAttempted"]
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-5.kind
Type: string; required in containing object
const: "environment"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-5.field
Type: string; optional
enum: ["placeId","platformId","temporalId","observedAt","weather","visibility","cloudCover","windDescription","celestialConditions","moonPhase","precipitation"]
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-6
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-6.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-6.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-7
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-7.kind
Type: string; required in containing object
const: "collection"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-7.field
Type: string; optional
enum: ["sensorType","detectionMethod","productRefs","acquisitionIds","retentionStatus","rawDataAvailable","anomalies","correlationDescription","alignmentDescription","notes"]
### entities[]/option-2.fields.eventContext[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.eventContext[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.eventContext[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.eventContext[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.eventContext[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content
Type: list of object; optional
Sourced content assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.content[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.content[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.content[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.content[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.content[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.content[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.content[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.content[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.content[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.content[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.content[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.content[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.content[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.content[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.content[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.content[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.content[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.content[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.content[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.content[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.content[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.content[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.content[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.content[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.content[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.content[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.content[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.content[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.content[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.content[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.content[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.content[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.content[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.content[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.content[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.content[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.content[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.content[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.content[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.content[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.content[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.content[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary
Type: list of object; optional
Sourced summary assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.summary[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.summary[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.summary[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.summary[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-1.value.text
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-1.value.summarizedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.summary[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.summary[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.summary[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.summary[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-2.value.text
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-2.value.summarizedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.summary[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.summary[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.summary[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.summary[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.summary[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.summary[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.summary[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.summary[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.summary[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.summary[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument
Type: list of object; optional
Sourced source document assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.sourceDocument[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.sourceDocument[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.sourceDocument[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.sourceDocument[].content/option-1.value
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.sourceDocument[].content/option-2.value
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.sourceDocument[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.sourceDocument[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.sourceDocument[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.sourceDocument[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.sourceDocument[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable
Type: list of object; optional
Sourced interview available assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.interviewAvailable[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.interviewAvailable[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.interviewAvailable[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.interviewAvailable[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-2.fields.interviewAvailable[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.interviewAvailable[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.interviewAvailable[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.interviewAvailable[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.interviewAvailable[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable
Type: list of object; optional
Sourced written report available assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.writtenReportAvailable[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.writtenReportAvailable[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.writtenReportAvailable[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath
Type: list of object; optional
Sourced under oath assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.underOath[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.underOath[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.underOath[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.underOath[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-2.fields.underOath[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.underOath[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.underOath[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.underOath[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.underOath[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-2.fields.underOath[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.underOath[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.underOath[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.underOath[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.underOath[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.underOath[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.underOath[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.underOath[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.underOath[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.underOath[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.underOath[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus
Type: list of object; optional
Sourced custody status assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.custodyStatus[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.custodyStatus[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.custodyStatus[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.custodyStatus[].content/option-1.value
Type: string; required in containing object
Custody status of an evidence item.
enum: ["verified","partial","unverified","government_held","private_held","lost","destroyed","classified","unknown"]
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.custodyStatus[].content/option-2.value
Type: string; required in containing object
Custody status of an evidence item.
enum: ["verified","partial","unverified","government_held","private_held","lost","destroyed","classified","unknown"]
### entities[]/option-2.fields.custodyStatus[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.custodyStatus[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.custodyStatus[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.custodyStatus[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.custodyStatus[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs
Type: list of object; optional
Sourced support refs assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.supportRefs[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.supportRefs[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.supportRefs[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.supportRefs[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-2.fields.supportRefs[].content/option-1.value[]
Type: string
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.supportRefs[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-2.fields.supportRefs[].content/option-2.value[]
Type: string
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.supportRefs[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.supportRefs[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.supportRefs[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.supportRefs[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.supportRefs[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.kind
Type: string; required in containing object
const: "procedure"
### entities[]/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType
Type: list of object; optional
Sourced procedure type assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-3.fields.procedureType[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.procedureType[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.procedureType[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.procedureType[].content/option-1.value
Type: string; required in containing object
const: "polygraph"
### entities[]/option-3.fields.procedureType[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.procedureType[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.procedureType[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.procedureType[].content/option-2.value
Type: string; required in containing object
const: "polygraph"
### entities[]/option-3.fields.procedureType[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.procedureType[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.procedureType[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.procedureType[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.procedureType[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.procedureType[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.procedureType[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.procedureType[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.procedureType[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.procedureType[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId
Type: list of object; optional
Sourced witness id assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-3.fields.witnessId[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.witnessId[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.witnessId[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.witnessId[].content/option-1.value
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.witnessId[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.witnessId[].content/option-2.value
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.witnessId[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.witnessId[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.witnessId[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.witnessId[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.witnessId[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId
Type: list of object; optional
Sourced account id assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-3.fields.accountId[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.accountId[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.accountId[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.accountId[].content/option-1.value
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.accountId[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.accountId[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.accountId[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.accountId[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.accountId[].content/option-2.value
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.accountId[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.accountId[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.accountId[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.accountId[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.accountId[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.accountId[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.accountId[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.accountId[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.accountId[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.accountId[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.accountId[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered
Type: list of object; optional
Sourced administered assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-3.fields.administered[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.administered[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.administered[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.administered[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-3.fields.administered[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.administered[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.administered[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.administered[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.administered[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-3.fields.administered[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.administered[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.administered[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.administered[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.administered[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.administered[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.administered[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.administered[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.administered[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.administered[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.administered[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed
Type: list of object; optional
Sourced passed assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-3.fields.passed[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.passed[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.passed[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.passed[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-3.fields.passed[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.passed[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.passed[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.passed[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.passed[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-3.fields.passed[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.passed[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.passed[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.passed[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.passed[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.passed[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.passed[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.passed[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.passed[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.passed[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.passed[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt
Type: list of object; optional
Sourced performed at assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-3.fields.performedAt[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.performedAt[].content/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-3.fields.performedAt[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.performedAt[].content/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-3.fields.performedAt[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.performedAt[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.performedAt[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.performedAt[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.performedAt[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context
Type: list of object; optional
Sourced context assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-3.fields.context[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.context[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.context[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.context[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.context[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.context[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.context[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.context[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.context[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.context[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.context[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.context[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.context[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.context[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.context[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.context[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.context[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.context[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.context[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.context[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.context[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.context[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.context[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.context[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.context[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.context[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.context[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.context[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.context[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.context[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.context[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.context[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.context[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.context[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.context[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.context[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.context[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.context[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.context[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.context[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.context[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.context[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument
Type: list of object; optional
Sourced source document assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-3.fields.sourceDocument[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.sourceDocument[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.sourceDocument[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.sourceDocument[].content/option-1.value
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.sourceDocument[].content/option-2.value
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.sourceDocument[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.sourceDocument[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.sourceDocument[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.sourceDocument[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.sourceDocument[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.kind
Type: string; required in containing object
const: "witness_group"
### entities[]/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds
Type: list of object; optional
Sourced witness ids assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-4.fields.witnessIds[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.witnessIds[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.witnessIds[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.witnessIds[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-4.fields.witnessIds[].content/option-1.value[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.witnessIds[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.witnessIds[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.witnessIds[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-4.fields.witnessIds[].content/option-2.value[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.witnessIds[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.witnessIds[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.witnessIds[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.witnessIds[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.witnessIds[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.witnessIds[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.witnessIds[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.witnessIds[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount
Type: list of object; optional
Sourced reported count assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-4.fields.reportedCount[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.reportedCount[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.reportedCount[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.reportedCount[].content/option-1.value
Type: integer; required in containing object
minimum: 0
maximum: 9007199254740991
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.reportedCount[].content/option-2.value
Type: integer; required in containing object
minimum: 0
maximum: 9007199254740991
### entities[]/option-4.fields.reportedCount[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.reportedCount[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.reportedCount[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.reportedCount[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.reportedCount[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories
Type: list of object; optional
Sourced categories assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-4.fields.categories[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.categories[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.categories[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.categories[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-4.fields.categories[].content/option-1.value[]
Type: string
Professional/role category of a witness.
enum: ["military_pilot","military_aircrew","military_ground","military_naval","military_radar_operator","military_other","commercial_pilot","commercial_aircrew","private_pilot","air_traffic_controller","aviation_other","government_official","elected_official","intelligence_officer","law_enforcement","scientist","astronomer","meteorologist","engineer","medical_professional","maritime","civilian","civilian_group","anonymous","unknown"]
### entities[]/option-4.fields.categories[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.categories[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.categories[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.categories[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.categories[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-4.fields.categories[].content/option-2.value[]
Type: string
Professional/role category of a witness.
enum: ["military_pilot","military_aircrew","military_ground","military_naval","military_radar_operator","military_other","commercial_pilot","commercial_aircrew","private_pilot","air_traffic_controller","aviation_other","government_official","elected_official","intelligence_officer","law_enforcement","scientist","astronomer","meteorologist","engineer","medical_professional","maritime","civilian","civilian_group","anonymous","unknown"]
### entities[]/option-4.fields.categories[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.categories[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.categories[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.categories[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.categories[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.categories[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.categories[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.categories[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.categories[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.categories[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.categories[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses
Type: list of object; optional
Sourced military witnesses assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-4.fields.militaryWitnesses[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.militaryWitnesses[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.militaryWitnesses[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.militaryWitnesses[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.militaryWitnesses[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.militaryWitnesses[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses
Type: list of object; optional
Sourced aviation witnesses assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-4.fields.aviationWitnesses[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.aviationWitnesses[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.aviationWitnesses[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.aviationWitnesses[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.aviationWitnesses[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.aviationWitnesses[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers
Type: list of object; optional
Sourced professional observers assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-4.fields.professionalObservers[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.professionalObservers[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.professionalObservers[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.professionalObservers[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.professionalObservers[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-4.fields.professionalObservers[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.professionalObservers[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.professionalObservers[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.professionalObservers[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.professionalObservers[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions
Type: list of object; optional
Sourced descriptions assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-4.fields.descriptions[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.descriptions[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.descriptions[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.descriptions[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-4.fields.descriptions[].content/option-1.value[]
Type: string
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.descriptions[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-4.fields.descriptions[].content/option-2.value[]
Type: string
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.descriptions[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.descriptions[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.descriptions[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.descriptions[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.kind
Type: string; required in containing object
const: "source_edition"
### entities[]/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title
Type: list of object; optional
Sourced title assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.title[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.title[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.title[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.title[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.title[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.title[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.title[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.title[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.title[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.title[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.title[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.title[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.title[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.title[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.title[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.title[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.title[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.title[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.title[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.title[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.title[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.title[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.title[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.title[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.title[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.title[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.title[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.title[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.title[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.title[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.title[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.title[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.title[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.title[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.title[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.title[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.title[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.title[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.title[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.title[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.title[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.title[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.title[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.title[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.title[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.title[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.title[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.title[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.title[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.title[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.title[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.title[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.title[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.title[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.title[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.type
Type: list of object; optional
Sourced type assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.type[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.type[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.type[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.type[].content/option-1.value
Type: string; required in containing object
Kind of source backing an observation (document, testimony, media, etc.).
enum: ["foia","official_report","official_statement","congressional_testimony","congressional_report","military_document","intelligence_document","whistleblower","firsthand_witness","secondhand_account","news_article","documentary","interview","book","academic_paper","investigation_report","database_entry","social_media","website","other"]
### entities[]/option-5.fields.type[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.type[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.type[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.type[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.type[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.type[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.type[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.type[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.type[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.type[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.type[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.type[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.type[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.type[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.type[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.type[].content/option-2.value
Type: string; required in containing object
Kind of source backing an observation (document, testimony, media, etc.).
enum: ["foia","official_report","official_statement","congressional_testimony","congressional_report","military_document","intelligence_document","whistleblower","firsthand_witness","secondhand_account","news_article","documentary","interview","book","academic_paper","investigation_report","database_entry","social_media","website","other"]
### entities[]/option-5.fields.type[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.type[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.type[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.type[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.type[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.type[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.type[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.type[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.type[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.type[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.type[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.type[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.type[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.type[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.type[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.type[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.type[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.type[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.type[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.type[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.type[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.type[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.type[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.type[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.type[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.type[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.type[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.type[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.type[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.type[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.type[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.type[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.type[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.type[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.type[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.author
Type: list of object; optional
Sourced author assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.author[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.author[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.author[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.author[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.author[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.author[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.author[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.author[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.author[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.author[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.author[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.author[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.author[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.author[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.author[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.author[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.author[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.author[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.author[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.author[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.author[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.author[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.author[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.author[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.author[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.author[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.author[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.author[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.author[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.author[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.author[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.author[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.author[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.author[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.author[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.author[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.author[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.author[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.author[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.author[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.author[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.author[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.author[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.author[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.author[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.author[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.author[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.author[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.author[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.author[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.author[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.author[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.author[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.author[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.author[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.organization
Type: list of object; optional
Sourced organization assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.organization[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.organization[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.organization[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.organization[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.organization[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.organization[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.organization[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.organization[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.organization[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.organization[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.organization[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.organization[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.organization[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.organization[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.organization[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.organization[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.organization[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.organization[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.organization[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.organization[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.organization[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.organization[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.organization[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.organization[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.organization[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.organization[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.organization[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.organization[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.organization[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.organization[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.organization[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.organization[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.organization[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.organization[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.organization[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.organization[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.organization[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.organization[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.organization[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.organization[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.organization[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.organization[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.organization[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.organization[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.organization[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.organization[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.organization[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.organization[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.organization[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.organization[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.organization[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.organization[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.organization[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.organization[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.organization[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.issuedAt
Type: list of object; optional
Sourced issued at assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.issuedAt[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.issuedAt[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.issuedAt[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.issuedAt[].content/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-5.fields.issuedAt[].content/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.issuedAt[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.issuedAt[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.issuedAt[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.issuedAt[].content/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-5.fields.issuedAt[].content/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-5.fields.issuedAt[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.issuedAt[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.issuedAt[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.issuedAt[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.issuedAt[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.issuedAt[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.issuedAt[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.issuedAt[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.issuedAt[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.issuedAt[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveLocation
Type: list of object; optional
Sourced archive location assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.archiveLocation[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.archiveLocation[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.archiveLocation[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.archiveLocation[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveLocation[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveLocation[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveLocation[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.archiveLocation[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveLocation[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveLocation[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveLocation[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveLocation[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.archiveLocation[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.archiveLocation[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.archiveLocation[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveLocation[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.archiveLocation[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveLocation[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.primaryDisplay
Type: list of object; optional
Sourced primary display assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.primaryDisplay[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.primaryDisplay[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.primaryDisplay[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.primaryDisplay[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.primaryDisplay[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.primaryDisplay[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.primaryDisplay[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.primaryDisplay[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-5.fields.primaryDisplay[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.primaryDisplay[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.primaryDisplay[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.primaryDisplay[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.primaryDisplay[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.primaryDisplay[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.primaryDisplay[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.primaryDisplay[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.primaryDisplay[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.primaryDisplay[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalUrl
Type: list of object; optional
Sourced original url assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.originalUrl[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.originalUrl[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.originalUrl[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.originalUrl[].content/option-1.value
Type: string; required in containing object
format: "uri"
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalUrl[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalUrl[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalUrl[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.originalUrl[].content/option-2.value
Type: string; required in containing object
format: "uri"
### entities[]/option-5.fields.originalUrl[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalUrl[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalUrl[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalUrl[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.originalUrl[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.originalUrl[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.originalUrl[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalUrl[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.originalUrl[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalUrl[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveUrl
Type: list of object; optional
Sourced archive url assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.archiveUrl[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.archiveUrl[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.archiveUrl[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.archiveUrl[].content/option-1.value
Type: string; required in containing object
format: "uri"
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveUrl[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveUrl[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveUrl[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.archiveUrl[].content/option-2.value
Type: string; required in containing object
format: "uri"
### entities[]/option-5.fields.archiveUrl[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveUrl[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveUrl[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveUrl[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.archiveUrl[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.archiveUrl[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.archiveUrl[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveUrl[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.archiveUrl[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.archiveUrl[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.reference
Type: list of object; optional
Sourced reference assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.reference[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.reference[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.reference[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.reference[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.reference[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.reference[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.reference[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.reference[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.reference[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.reference[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.reference[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.reference[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.reference[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.reference[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.reference[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.reference[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.reference[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.reference[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.reference[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.reference[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.reference[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.reference[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.reference[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.reference[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.reference[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.reference[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.reference[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.reference[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.reference[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.reference[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.reference[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.reference[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.reference[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.reference[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.reference[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.reference[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.reference[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.reference[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.reference[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.reference[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.reference[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.reference[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.reference[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.reference[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.reference[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.reference[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.reference[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.reference[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.reference[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.reference[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.reference[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.reference[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.reference[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.reference[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.reference[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.isPrimarySource
Type: list of object; optional
Sourced is primary source assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.isPrimarySource[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.isPrimarySource[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.isPrimarySource[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.isPrimarySource[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-1.value.value
Type: boolean; required in containing object
### entities[]/option-5.fields.isPrimarySource[].content/option-1.value.context
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.isPrimarySource[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.isPrimarySource[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.isPrimarySource[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.isPrimarySource[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-2.value.value
Type: boolean; required in containing object
### entities[]/option-5.fields.isPrimarySource[].content/option-2.value.context
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.isPrimarySource[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.isPrimarySource[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.isPrimarySource[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.isPrimarySource[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.isPrimarySource[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.isPrimarySource[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.isPrimarySource[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.isPrimarySource[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.isPrimarySource[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.isPrimarySource[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.documentType
Type: list of object; optional
Sourced document type assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.documentType[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.documentType[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.documentType[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.documentType[].content/option-1.value
Type: string; required in containing object
Kind of government/official document.
enum: ["foia_release","official_report","congressional_record","military_memo","intelligence_assessment","inspector_general","presidential_directive","executive_order","declassified_cable","investigation_file","other"]
### entities[]/option-5.fields.documentType[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.documentType[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.documentType[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.documentType[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.documentType[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.documentType[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.documentType[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.documentType[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.documentType[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.documentType[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.documentType[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.documentType[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.documentType[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.documentType[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.documentType[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.documentType[].content/option-2.value
Type: string; required in containing object
Kind of government/official document.
enum: ["foia_release","official_report","congressional_record","military_memo","intelligence_assessment","inspector_general","presidential_directive","executive_order","declassified_cable","investigation_file","other"]
### entities[]/option-5.fields.documentType[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.documentType[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.documentType[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.documentType[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.documentType[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.documentType[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.documentType[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.documentType[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.documentType[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.documentType[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.documentType[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.documentType[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.documentType[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.documentType[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.documentType[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.documentType[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.documentType[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.documentType[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.documentType[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.documentType[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.documentType[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.documentType[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.documentType[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.documentType[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.documentType[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.documentType[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.documentType[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.documentType[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.documentType[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.documentType[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.documentType[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.documentType[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.documentType[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.documentType[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.documentType[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originatingAgency
Type: list of object; optional
Sourced originating agency assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.originatingAgency[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.originatingAgency[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.originatingAgency[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.originatingAgency[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originatingAgency[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originatingAgency[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originatingAgency[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.originatingAgency[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originatingAgency[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originatingAgency[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originatingAgency[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originatingAgency[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.originatingAgency[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.originatingAgency[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.originatingAgency[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originatingAgency[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.originatingAgency[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originatingAgency[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.controlNumbers
Type: list of object; optional
Sourced control numbers assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.controlNumbers[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.controlNumbers[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.controlNumbers[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.controlNumbers[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-5.fields.controlNumbers[].content/option-1.value[]
Type: string
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.controlNumbers[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.controlNumbers[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.controlNumbers[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.controlNumbers[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-5.fields.controlNumbers[].content/option-2.value[]
Type: string
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.controlNumbers[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.controlNumbers[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.controlNumbers[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.controlNumbers[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.controlNumbers[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.controlNumbers[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.controlNumbers[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.controlNumbers[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.controlNumbers[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.controlNumbers[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.foiaRequestNumber
Type: list of object; optional
Sourced foia request number assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.foiaRequestNumber[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.foiaRequestNumber[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.foiaRequestNumber[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.foiaRequestNumber[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalClassification
Type: list of object; optional
Sourced original classification assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.originalClassification[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.originalClassification[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.originalClassification[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.originalClassification[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalClassification[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalClassification[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalClassification[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.originalClassification[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalClassification[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalClassification[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalClassification[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalClassification[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.originalClassification[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.originalClassification[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.originalClassification[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalClassification[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.originalClassification[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.originalClassification[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.classificationLevel
Type: list of object; optional
Sourced classification level assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.classificationLevel[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.classificationLevel[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.classificationLevel[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.classificationLevel[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.classificationLevel[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.classificationLevel[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.classificationLevel[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.classificationLevel[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.classificationLevel[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.classificationLevel[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.classificationLevel[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.classificationLevel[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.classificationLevel[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.classificationLevel[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.classificationLevel[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.classificationLevel[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.classificationLevel[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.classificationLevel[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.pageCount
Type: list of object; optional
Sourced page count assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.pageCount[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.pageCount[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.pageCount[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.pageCount[].content/option-1.value
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.pageCount[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.pageCount[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.pageCount[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.pageCount[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.pageCount[].content/option-2.value
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.pageCount[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.pageCount[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.pageCount[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.pageCount[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.pageCount[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.pageCount[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.pageCount[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.pageCount[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.pageCount[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.pageCount[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.pageCount[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.pageCount[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionLevel
Type: list of object; optional
Sourced redaction level assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.redactionLevel[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.redactionLevel[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.redactionLevel[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.redactionLevel[].content/option-1.value
Type: string; required in containing object
enum: ["none","partial","heavy","unknown"]
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionLevel[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionLevel[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionLevel[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.redactionLevel[].content/option-2.value
Type: string; required in containing object
enum: ["none","partial","heavy","unknown"]
### entities[]/option-5.fields.redactionLevel[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionLevel[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionLevel[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionLevel[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.redactionLevel[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.redactionLevel[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.redactionLevel[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionLevel[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.redactionLevel[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionLevel[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionDescription
Type: list of object; optional
Sourced redaction description assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.redactionDescription[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.redactionDescription[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.redactionDescription[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.redactionDescription[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionDescription[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionDescription[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionDescription[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.redactionDescription[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionDescription[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionDescription[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionDescription[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionDescription[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.redactionDescription[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.redactionDescription[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.redactionDescription[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionDescription[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.redactionDescription[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionDescription[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionPercent
Type: list of object; optional
Sourced redaction percent assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.redactionPercent[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.redactionPercent[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.redactionPercent[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.redactionPercent[].content/option-1.value
Type: number; required in containing object
minimum: 0
maximum: 100
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionPercent[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionPercent[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionPercent[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.redactionPercent[].content/option-2.value
Type: number; required in containing object
minimum: 0
maximum: 100
### entities[]/option-5.fields.redactionPercent[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionPercent[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionPercent[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionPercent[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.redactionPercent[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.redactionPercent[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.redactionPercent[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionPercent[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.redactionPercent[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.redactionPercent[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.notes
Type: list of object; optional
Sourced notes assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-5.fields.notes[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.notes[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-5.fields.notes[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-5.fields.notes[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.notes[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.notes[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.notes[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.notes[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.notes[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.notes[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.notes[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.notes[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.notes[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.notes[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.notes[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.notes[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.notes[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.notes[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.notes[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-5.fields.notes[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.notes[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.notes[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.notes[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.notes[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.notes[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.notes[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.notes[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.notes[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.notes[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.notes[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.notes[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.notes[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.notes[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.notes[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.notes[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.notes[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-5.fields.notes[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-5.fields.notes[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-5.fields.notes[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.notes[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-5.fields.notes[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.notes[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.fields.notes[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.fields.notes[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-5.fields.notes[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-5.fields.notes[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-5.fields.notes[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-5.fields.notes[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-5.fields.notes[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.notes[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-5.fields.notes[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-5.fields.notes[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-5.fields.notes[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-5.fields.notes[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.fields.notes[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-5.artifact
Type: object; required in containing object
One exact artifact in the scoped observation inventory. A URL, title or legacy hash cannot substitute for this identity.
Extra fields: Not allowed in this object
### entities[]/option-5.artifact.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-5.artifact.digest
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-5.artifact.digest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-5.artifact.digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-6
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.kind
Type: string; required in containing object
const: "document_event"
### entities[]/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType
Type: list of object; optional
Sourced event type assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-6.fields.eventType[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.eventType[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.eventType[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-6.fields.eventType[].content/option-1.value
Type: string; required in containing object
enum: ["creation","release","classification","declassification"]
### entities[]/option-6.fields.eventType[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.eventType[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.eventType[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.eventType[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.eventType[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.eventType[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.eventType[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.eventType[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.eventType[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.eventType[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.eventType[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.eventType[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.eventType[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.eventType[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.eventType[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-6.fields.eventType[].content/option-2.value
Type: string; required in containing object
enum: ["creation","release","classification","declassification"]
### entities[]/option-6.fields.eventType[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.eventType[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.eventType[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.eventType[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.eventType[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.eventType[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.eventType[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.eventType[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.eventType[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.eventType[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.eventType[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.eventType[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.eventType[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.eventType[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.eventType[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.eventType[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-6.fields.eventType[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-6.fields.eventType[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-6.fields.eventType[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.eventType[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-6.fields.eventType[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.eventType[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.eventType[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.eventType[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.eventType[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.eventType[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.eventType[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.eventType[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.eventType[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.eventType[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.eventType[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.eventType[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.eventType[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.eventType[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.eventType[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.occurredAt
Type: list of object; optional
Sourced occurred at assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-6.fields.occurredAt[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.occurredAt[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.occurredAt[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-6.fields.occurredAt[].content/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-6.fields.occurredAt[].content/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.occurredAt[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.occurredAt[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.occurredAt[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-6.fields.occurredAt[].content/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-6.fields.occurredAt[].content/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-6.fields.occurredAt[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.occurredAt[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.occurredAt[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.occurredAt[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-6.fields.occurredAt[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-6.fields.occurredAt[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-6.fields.occurredAt[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.occurredAt[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-6.fields.occurredAt[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.occurredAt[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.authority
Type: list of object; optional
Sourced authority assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-6.fields.authority[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.authority[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.authority[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-6.fields.authority[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.authority[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.authority[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.authority[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.authority[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.authority[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.authority[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.authority[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.authority[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.authority[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.authority[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.authority[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.authority[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.authority[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.authority[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.authority[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-6.fields.authority[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.authority[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.authority[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.authority[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.authority[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.authority[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.authority[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.authority[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.authority[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.authority[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.authority[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.authority[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.authority[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.authority[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.authority[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.authority[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.authority[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-6.fields.authority[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-6.fields.authority[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-6.fields.authority[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.authority[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-6.fields.authority[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.authority[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.authority[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.authority[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.authority[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.authority[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.authority[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.authority[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.authority[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.authority[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.authority[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.authority[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.authority[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.authority[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.authority[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.reference
Type: list of object; optional
Sourced reference assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-6.fields.reference[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.reference[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.reference[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-6.fields.reference[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.reference[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.reference[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.reference[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.reference[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.reference[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.reference[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.reference[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.reference[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.reference[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.reference[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.reference[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.reference[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.reference[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.reference[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.reference[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-6.fields.reference[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.reference[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.reference[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.reference[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.reference[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.reference[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.reference[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.reference[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.reference[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.reference[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.reference[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.reference[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.reference[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.reference[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.reference[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.reference[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.reference[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-6.fields.reference[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-6.fields.reference[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-6.fields.reference[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.reference[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-6.fields.reference[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.reference[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.reference[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.reference[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.reference[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.reference[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.reference[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.reference[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.reference[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.reference[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.reference[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.reference[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.reference[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.reference[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.reference[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.marking
Type: list of object; optional
Sourced marking assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-6.fields.marking[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.marking[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.marking[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-6.fields.marking[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.marking[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.marking[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.marking[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.marking[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.marking[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.marking[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.marking[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.marking[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.marking[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.marking[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.marking[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.marking[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.marking[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.marking[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.marking[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-6.fields.marking[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.marking[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.marking[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.marking[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.marking[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.marking[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.marking[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.marking[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.marking[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.marking[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.marking[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.marking[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.marking[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.marking[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.marking[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.marking[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.marking[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-6.fields.marking[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-6.fields.marking[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-6.fields.marking[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.marking[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-6.fields.marking[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.marking[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.marking[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.marking[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.marking[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.marking[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.marking[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.marking[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.marking[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.marking[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.marking[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.marking[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.marking[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.marking[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.marking[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes
Type: list of object; optional
Sourced notes assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-6.fields.notes[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.notes[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-6.fields.notes[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-6.fields.notes[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.notes[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.notes[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.notes[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.notes[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-6.fields.notes[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.notes[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.notes[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.notes[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.notes[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-6.fields.notes[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-6.fields.notes[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-6.fields.notes[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-6.fields.notes[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-6.fields.notes[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-6.fields.notes[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-6.fields.notes[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-6.fields.notes[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.fields.notes[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-6.editionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.kind
Type: string; required in containing object
const: "digital_artifact"
### entities[]/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes
Type: list of object; optional
Sourced declared hashes assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.declaredHashes[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.declaredHashes[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.declaredHashes[].content/option-1.value
Type: list of object; required in containing object
minItems: 1
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].hash
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].hash/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].hash/option-1.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].hash/option-1.value
Type: string; required in containing object
pattern: "^[a-fA-F0-9]{64}(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].hash/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].hash/option-2.algorithm
Type: string; required in containing object
const: "sha512"
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].hash/option-2.value
Type: string; required in containing object
pattern: "^[a-fA-F0-9]{128}(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].hash/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].hash/option-3.algorithm
Type: string; required in containing object
const: "sha1"
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].hash/option-3.value
Type: string; required in containing object
pattern: "^[a-fA-F0-9]{40}(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].hash/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].hash/option-4.algorithm
Type: string; required in containing object
const: "md5"
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].hash/option-4.value
Type: string; required in containing object
pattern: "^[a-fA-F0-9]{32}(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].appliesTo
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].appliesTo/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].appliesTo/option-1.kind
Type: string; required in containing object
const: "artifact"
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].appliesTo/option-1.reference
Type: object; required in containing object
One exact artifact in the scoped observation inventory. A URL, title or legacy hash cannot substitute for this identity.
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].appliesTo/option-1.reference.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].appliesTo/option-1.reference.digest
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].appliesTo/option-1.reference.digest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].appliesTo/option-1.reference.digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].appliesTo/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].appliesTo/option-2.kind
Type: string; required in containing object
const: "unavailable_original"
### entities[]/option-7.fields.declaredHashes[].content/option-1.value[].appliesTo/option-2.description
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.declaredHashes[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.declaredHashes[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.declaredHashes[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.declaredHashes[].content/option-2.value
Type: list of object; required in containing object
minItems: 1
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].hash
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].hash/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].hash/option-1.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].hash/option-1.value
Type: string; required in containing object
pattern: "^[a-fA-F0-9]{64}(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].hash/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].hash/option-2.algorithm
Type: string; required in containing object
const: "sha512"
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].hash/option-2.value
Type: string; required in containing object
pattern: "^[a-fA-F0-9]{128}(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].hash/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].hash/option-3.algorithm
Type: string; required in containing object
const: "sha1"
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].hash/option-3.value
Type: string; required in containing object
pattern: "^[a-fA-F0-9]{40}(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].hash/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].hash/option-4.algorithm
Type: string; required in containing object
const: "md5"
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].hash/option-4.value
Type: string; required in containing object
pattern: "^[a-fA-F0-9]{32}(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].appliesTo
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].appliesTo/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].appliesTo/option-1.kind
Type: string; required in containing object
const: "artifact"
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].appliesTo/option-1.reference
Type: object; required in containing object
One exact artifact in the scoped observation inventory. A URL, title or legacy hash cannot substitute for this identity.
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].appliesTo/option-1.reference.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].appliesTo/option-1.reference.digest
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].appliesTo/option-1.reference.digest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].appliesTo/option-1.reference.digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].appliesTo/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].appliesTo/option-2.kind
Type: string; required in containing object
const: "unavailable_original"
### entities[]/option-7.fields.declaredHashes[].content/option-2.value[].appliesTo/option-2.description
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.declaredHashes[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.declaredHashes[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.declaredHashes[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.declaredHashes[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.declaredHashes[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.declaredHashes[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.declaredHashes[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.declaredHashes[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.declaredHashes[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.declaredHashes[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.device
Type: list of object; optional
Sourced device assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.device[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.device[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.device[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.device[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.device[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.device[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.device[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.device[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.device[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.device[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.device[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.device[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.device[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.device[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.device[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.device[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.device[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.device[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.device[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.device[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.device[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.device[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.device[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.device[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.device[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.device[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.device[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.device[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.device[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.device[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.device[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.device[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.device[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.device[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.device[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.device[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.device[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.device[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.device[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.device[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.device[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.device[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.device[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.device[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.device[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.device[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.device[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.device[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.device[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.device[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.device[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.device[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.device[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.device[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.device[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.manufacturer
Type: list of object; optional
Sourced manufacturer assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.manufacturer[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.manufacturer[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.manufacturer[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.manufacturer[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.manufacturer[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.manufacturer[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.manufacturer[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.manufacturer[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.manufacturer[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.manufacturer[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.manufacturer[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.manufacturer[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.manufacturer[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.manufacturer[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.manufacturer[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.manufacturer[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.manufacturer[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.manufacturer[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.model
Type: list of object; optional
Sourced model assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.model[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.model[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.model[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.model[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.model[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.model[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.model[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.model[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.model[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.model[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.model[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.model[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.model[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.model[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.model[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.model[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.model[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.model[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.model[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.model[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.model[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.model[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.model[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.model[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.model[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.model[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.model[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.model[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.model[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.model[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.model[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.model[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.model[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.model[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.model[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.model[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.model[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.model[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.model[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.model[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.model[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.model[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.model[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.model[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.model[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.model[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.model[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.model[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.model[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.model[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.model[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.model[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.model[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.model[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.model[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.software
Type: list of object; optional
Sourced software assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.software[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.software[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.software[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.software[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.software[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.software[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.software[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.software[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.software[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.software[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.software[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.software[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.software[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.software[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.software[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.software[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.software[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.software[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.software[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.software[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.software[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.software[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.software[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.software[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.software[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.software[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.software[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.software[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.software[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.software[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.software[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.software[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.software[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.software[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.software[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.software[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.software[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.software[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.software[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.software[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.software[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.software[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.software[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.software[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.software[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.software[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.software[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.software[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.software[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.software[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.software[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.software[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.software[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.software[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.software[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalFilename
Type: list of object; optional
Sourced original filename assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.originalFilename[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.originalFilename[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.originalFilename[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.originalFilename[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalFilename[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalFilename[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalFilename[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.originalFilename[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalFilename[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalFilename[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalFilename[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalFilename[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.originalFilename[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.originalFilename[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.originalFilename[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalFilename[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.originalFilename[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalFilename[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalCreationDate
Type: list of object; optional
Sourced original creation date assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.originalCreationDate[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.originalCreationDate[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.originalCreationDate[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalCreationDate[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalCreationDate[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalCreationDate[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalCreationDate[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.originalCreationDate[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.originalCreationDate[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.originalCreationDate[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalCreationDate[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.originalCreationDate[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.originalCreationDate[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.gpsCoordinates
Type: list of object; optional
Sourced gps coordinates assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.gpsCoordinates[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.gpsCoordinates[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.gpsCoordinates[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.value.latitude
Type: number; required in containing object
minimum: -90
maximum: 90
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.value.longitude
Type: number; required in containing object
minimum: -180
maximum: 180
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.value.altitude
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.value.altitude.value
Type: number; required in containing object
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.value.altitude.unit
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.value.altitude.unit/option-1
Type: string
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.value.altitude.unit/option-2
Type: null
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.value.altitude.datum
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.gpsCoordinates[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.gpsCoordinates[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.value.latitude
Type: number; required in containing object
minimum: -90
maximum: 90
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.value.longitude
Type: number; required in containing object
minimum: -180
maximum: 180
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.value.altitude
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.value.altitude.value
Type: number; required in containing object
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.value.altitude.unit
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.value.altitude.unit/option-1
Type: string
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.value.altitude.unit/option-2
Type: null
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.value.altitude.datum
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.gpsCoordinates[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.gpsCoordinates[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.gpsCoordinates[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.gpsCoordinates[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.gpsCoordinates[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.gpsCoordinates[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.gpsCoordinates[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataPreserved
Type: list of object; optional
Sourced metadata preserved assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.metadataPreserved[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.metadataPreserved[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.metadataPreserved[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.metadataPreserved[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataPreserved[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataPreserved[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataPreserved[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.metadataPreserved[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-7.fields.metadataPreserved[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataPreserved[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataPreserved[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataPreserved[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.metadataPreserved[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.metadataPreserved[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.metadataPreserved[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataPreserved[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.metadataPreserved[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataPreserved[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataStripped
Type: list of object; optional
Sourced metadata stripped assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.metadataStripped[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.metadataStripped[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.metadataStripped[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.metadataStripped[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataStripped[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataStripped[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataStripped[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.metadataStripped[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-7.fields.metadataStripped[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataStripped[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataStripped[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataStripped[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.metadataStripped[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.metadataStripped[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.metadataStripped[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataStripped[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.metadataStripped[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.metadataStripped[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.strippedReason
Type: list of object; optional
Sourced stripped reason assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.strippedReason[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.strippedReason[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.strippedReason[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.strippedReason[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.strippedReason[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.strippedReason[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.strippedReason[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.strippedReason[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.strippedReason[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.strippedReason[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.strippedReason[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.strippedReason[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.strippedReason[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.strippedReason[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.strippedReason[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.strippedReason[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.strippedReason[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.strippedReason[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.custodyStatus
Type: list of object; optional
Sourced custody status assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.custodyStatus[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.custodyStatus[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.custodyStatus[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.custodyStatus[].content/option-1.value
Type: string; required in containing object
Custody status of an evidence item.
enum: ["verified","partial","unverified","government_held","private_held","lost","destroyed","classified","unknown"]
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.custodyStatus[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.custodyStatus[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.custodyStatus[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.custodyStatus[].content/option-2.value
Type: string; required in containing object
Custody status of an evidence item.
enum: ["verified","partial","unverified","government_held","private_held","lost","destroyed","classified","unknown"]
### entities[]/option-7.fields.custodyStatus[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.custodyStatus[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.custodyStatus[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.custodyStatus[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.custodyStatus[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.custodyStatus[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.custodyStatus[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.custodyStatus[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.custodyStatus[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.custodyStatus[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.provenanceChainDescription
Type: list of object; optional
Sourced provenance chain description assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.provenanceChainDescription[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.provenanceChainDescription[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.value[]
Type: string
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.value[]
Type: string
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.provenanceChainDescription[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.provenanceChainDescription[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.derivedFromArtifactIds
Type: list of object; optional
Sourced derived from artifact ids assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.derivedFromArtifactIds[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.derivedFromArtifactIds[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.value[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.value[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.derivedFromArtifactIds[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.lastUpdated
Type: list of object; optional
Sourced last updated assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.lastUpdated[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.lastUpdated[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.lastUpdated[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-7.fields.lastUpdated[].content/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.lastUpdated[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.lastUpdated[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.lastUpdated[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-7.fields.lastUpdated[].content/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-7.fields.lastUpdated[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.lastUpdated[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.lastUpdated[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.lastUpdated[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.lastUpdated[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.lastUpdated[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.lastUpdated[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.lastUpdated[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.lastUpdated[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.lastUpdated[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes
Type: list of object; optional
Sourced notes assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-7.fields.notes[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.notes[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-7.fields.notes[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-7.fields.notes[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.notes[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.notes[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.notes[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.notes[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-7.fields.notes[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.notes[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.notes[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.notes[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.notes[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-7.fields.notes[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-7.fields.notes[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-7.fields.notes[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-7.fields.notes[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.fields.notes[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.fields.notes[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-7.fields.notes[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-7.fields.notes[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.fields.notes[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-7.artifact
Type: object; required in containing object
One exact artifact in the scoped observation inventory. A URL, title or legacy hash cannot substitute for this identity.
Extra fields: Not allowed in this object
### entities[]/option-7.artifact.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-7.artifact.digest
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-7.artifact.digest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-7.artifact.digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-8
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.kind
Type: string; required in containing object
const: "digital_custody_action"
### entities[]/option-8.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action
Type: list of object; optional
Sourced action assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-8.fields.action[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.action[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-8.fields.action[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-8.fields.action[].content/option-1.value
Type: string; required in containing object
An action recorded in a chain-of-custody entry.
enum: ["creation","collection","transfer","storage","analysis","release","classification","destruction","loss","recovery","other"]
### entities[]/option-8.fields.action[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.action[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.action[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.action[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.action[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.action[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.action[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.action[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.action[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.action[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.action[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.action[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.action[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.action[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.action[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-8.fields.action[].content/option-2.value
Type: string; required in containing object
An action recorded in a chain-of-custody entry.
enum: ["creation","collection","transfer","storage","analysis","release","classification","destruction","loss","recovery","other"]
### entities[]/option-8.fields.action[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.action[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.action[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.action[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.action[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.action[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.action[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.action[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.action[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.action[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.action[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.action[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.action[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.action[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.action[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.action[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-8.fields.action[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-8.fields.action[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-8.fields.action[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.action[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-8.fields.action[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.action[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.action[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.action[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.action[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.action[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.action[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.action[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.action[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.action[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.action[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.action[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.action[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.action[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.action[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.occurredAt
Type: list of object; optional
Sourced occurred at assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-8.fields.occurredAt[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.occurredAt[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-8.fields.occurredAt[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-8.fields.occurredAt[].content/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-8.fields.occurredAt[].content/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.occurredAt[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.occurredAt[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.occurredAt[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-8.fields.occurredAt[].content/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-8.fields.occurredAt[].content/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-8.fields.occurredAt[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.occurredAt[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.occurredAt[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.occurredAt[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-8.fields.occurredAt[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-8.fields.occurredAt[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-8.fields.occurredAt[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.occurredAt[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-8.fields.occurredAt[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.occurredAt[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.from
Type: list of object; optional
Sourced from assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-8.fields.from[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.from[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-8.fields.from[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-8.fields.from[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.from[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.from[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.from[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.from[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.from[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.from[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.from[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.from[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.from[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.from[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.from[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.from[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.from[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.from[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.from[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-8.fields.from[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.from[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.from[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.from[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.from[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.from[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.from[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.from[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.from[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.from[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.from[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.from[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.from[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.from[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.from[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.from[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.from[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-8.fields.from[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-8.fields.from[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-8.fields.from[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.from[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-8.fields.from[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.from[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.from[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.from[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.from[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.from[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.from[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.from[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.from[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.from[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.from[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.from[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.from[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.from[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.from[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.to
Type: list of object; optional
Sourced to assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-8.fields.to[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.to[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-8.fields.to[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-8.fields.to[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.to[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.to[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.to[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.to[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.to[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.to[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.to[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.to[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.to[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.to[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.to[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.to[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.to[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.to[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.to[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-8.fields.to[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.to[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.to[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.to[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.to[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.to[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.to[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.to[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.to[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.to[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.to[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.to[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.to[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.to[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.to[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.to[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.to[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-8.fields.to[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-8.fields.to[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-8.fields.to[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.to[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-8.fields.to[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.to[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.to[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.to[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.to[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.to[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.to[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.to[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.to[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.to[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.to[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.to[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.to[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.to[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.to[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.location
Type: list of object; optional
Sourced location assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-8.fields.location[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.location[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-8.fields.location[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-8.fields.location[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.location[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.location[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.location[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.location[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.location[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.location[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.location[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.location[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.location[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.location[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.location[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.location[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.location[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.location[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.location[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-8.fields.location[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.location[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.location[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.location[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.location[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.location[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.location[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.location[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.location[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.location[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.location[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.location[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.location[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.location[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.location[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.location[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.location[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-8.fields.location[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-8.fields.location[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-8.fields.location[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.location[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-8.fields.location[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.location[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.location[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.location[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.location[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.location[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.location[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.location[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.location[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.location[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.location[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.location[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.location[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.location[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.location[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.reference
Type: list of object; optional
Sourced reference assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-8.fields.reference[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.reference[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-8.fields.reference[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-8.fields.reference[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.reference[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.reference[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.reference[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.reference[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.reference[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.reference[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.reference[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.reference[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.reference[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.reference[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.reference[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.reference[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.reference[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.reference[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.reference[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-8.fields.reference[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.reference[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.reference[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.reference[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.reference[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.reference[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.reference[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.reference[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.reference[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.reference[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.reference[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.reference[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.reference[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.reference[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.reference[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.reference[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.reference[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-8.fields.reference[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-8.fields.reference[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-8.fields.reference[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.reference[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-8.fields.reference[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.reference[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.reference[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.reference[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.reference[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.reference[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.reference[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.reference[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.reference[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.reference[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.reference[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.reference[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.reference[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.reference[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.reference[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.notes
Type: list of object; optional
Sourced notes assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-8.fields.notes[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.notes[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-8.fields.notes[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-8.fields.notes[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.notes[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.notes[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.notes[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.notes[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.notes[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.notes[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.notes[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.notes[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.notes[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.notes[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.notes[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.notes[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.notes[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.notes[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.notes[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-8.fields.notes[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.notes[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.notes[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.notes[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.notes[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.notes[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.notes[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.notes[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.notes[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.notes[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.notes[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.notes[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.notes[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.notes[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.notes[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.notes[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.notes[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-8.fields.notes[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-8.fields.notes[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-8.fields.notes[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.notes[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-8.fields.notes[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.notes[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.fields.notes[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-8.fields.notes[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-8.fields.notes[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-8.fields.notes[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-8.fields.notes[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-8.fields.notes[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-8.fields.notes[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.notes[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-8.fields.notes[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.fields.notes[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-8.fields.notes[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-8.fields.notes[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.fields.notes[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-8.artifactId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.predecessor
Type: choice; required in containing object
Declared preceding action on the same artifact, a declared beginning, or an explicit gap. Array order carries no chronology.
Choose: Exactly one of the alternatives below
### entities[]/option-8.predecessor/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.predecessor/option-1.kind
Type: string; required in containing object
const: "action"
### entities[]/option-8.predecessor/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-8.predecessor/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.predecessor/option-2.kind
Type: string; required in containing object
const: "start"
### entities[]/option-8.predecessor/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-8.predecessor/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-8.predecessor/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-9
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.kind
Type: string; required in containing object
const: "external_identifier"
### entities[]/option-9.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-9.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value
Type: list of object; optional
Sourced value assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-9.fields.value[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-9.fields.value[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-9.fields.value[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-9.fields.value[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-1.value.system
Type: string; required in containing object
External identifier namespace (reporting centers, archives, academic registries, media hosts).
enum: ["nuforc","mufon","geipan","cufos","nicap","bluebook","nara","foia","aaro","congress","doi","arxiv","orcid","pubmed","isbn","issn","youtube","vimeo","internet_archive","wayback","url","uri","custom"]
### entities[]/option-9.fields.value[].content/option-1.value.systemName
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-1.value.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-1.value.url
Type: string; optional
format: "uri"
### entities[]/option-9.fields.value[].content/option-1.value.notes
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-9.fields.value[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-9.fields.value[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-9.fields.value[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-9.fields.value[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-9.fields.value[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-9.fields.value[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-9.fields.value[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.value[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.value[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-9.fields.value[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-9.fields.value[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-9.fields.value[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-2.value.system
Type: string; required in containing object
External identifier namespace (reporting centers, archives, academic registries, media hosts).
enum: ["nuforc","mufon","geipan","cufos","nicap","bluebook","nara","foia","aaro","congress","doi","arxiv","orcid","pubmed","isbn","issn","youtube","vimeo","internet_archive","wayback","url","uri","custom"]
### entities[]/option-9.fields.value[].content/option-2.value.systemName
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-2.value.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-2.value.url
Type: string; optional
format: "uri"
### entities[]/option-9.fields.value[].content/option-2.value.notes
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-9.fields.value[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-9.fields.value[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-9.fields.value[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-9.fields.value[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-9.fields.value[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-9.fields.value[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-9.fields.value[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.value[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.value[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-9.fields.value[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-9.fields.value[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-9.fields.value[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-9.fields.value[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-9.fields.value[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-9.fields.value[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-9.fields.value[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-9.fields.value[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-9.fields.value[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-9.fields.value[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-9.fields.value[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-9.fields.value[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-9.fields.value[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.value[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.value[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.value[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-9.fields.value[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-9.fields.value[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.value[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.primaryDisplay
Type: list of object; optional
Sourced primary display assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-9.fields.primaryDisplay[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-9.fields.primaryDisplay[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-9.fields.primaryDisplay[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-9.fields.primaryDisplay[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.primaryDisplay[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.primaryDisplay[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.primaryDisplay[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-9.fields.primaryDisplay[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-9.fields.primaryDisplay[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.primaryDisplay[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.primaryDisplay[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.primaryDisplay[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-9.fields.primaryDisplay[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-9.fields.primaryDisplay[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-9.fields.primaryDisplay[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.primaryDisplay[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-9.fields.primaryDisplay[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.primaryDisplay[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.notes
Type: list of object; optional
Sourced notes assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-9.fields.notes[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-9.fields.notes[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-9.fields.notes[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-9.fields.notes[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.notes[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-9.fields.notes[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-9.fields.notes[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-9.fields.notes[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-9.fields.notes[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-9.fields.notes[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-9.fields.notes[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-9.fields.notes[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.notes[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.notes[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-9.fields.notes[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-9.fields.notes[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.notes[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.notes[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.notes[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-9.fields.notes[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.notes[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.notes[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-9.fields.notes[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-9.fields.notes[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-9.fields.notes[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-9.fields.notes[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-9.fields.notes[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-9.fields.notes[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-9.fields.notes[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.notes[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.notes[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-9.fields.notes[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-9.fields.notes[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.notes[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.notes[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.notes[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-9.fields.notes[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-9.fields.notes[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-9.fields.notes[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.notes[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-9.fields.notes[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.notes[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-9.fields.notes[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-9.fields.notes[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-9.fields.notes[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-9.fields.notes[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-9.fields.notes[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-9.fields.notes[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-9.fields.notes[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.notes[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-9.fields.notes[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.fields.notes[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-9.fields.notes[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-9.fields.notes[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.fields.notes[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-9.subject
Type: choice; required in containing object
The scoped observation or one exact source edition. A catalog identifier is not automatically an event identifier.
Choose: Exactly one of the alternatives below
### entities[]/option-9.subject/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.subject/option-1.kind
Type: string; required in containing object
const: "observation"
### entities[]/option-9.subject/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-9.subject/option-2.kind
Type: string; required in containing object
const: "source_edition"
### entities[]/option-9.subject/option-2.editionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.kind
Type: string; required in containing object
const: "identifier_check"
### entities[]/option-10.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt
Type: list of object; optional
Sourced checked at assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-10.fields.checkedAt[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.checkedAt[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-10.fields.checkedAt[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-10.fields.checkedAt[].content/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-10.fields.checkedAt[].content/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.checkedAt[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.checkedAt[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.checkedAt[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-10.fields.checkedAt[].content/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-10.fields.checkedAt[].content/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-10.fields.checkedAt[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.checkedAt[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.checkedAt[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.checkedAt[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-10.fields.checkedAt[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-10.fields.checkedAt[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-10.fields.checkedAt[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.checkedAt[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-10.fields.checkedAt[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.checkedAt[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.agent
Type: list of object; optional
Sourced agent assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-10.fields.agent[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.agent[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-10.fields.agent[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-10.fields.agent[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.agent[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.agent[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.agent[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.agent[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.agent[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.agent[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.agent[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.agent[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.agent[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.agent[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.agent[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.agent[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.agent[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.agent[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.agent[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-10.fields.agent[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.agent[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.agent[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.agent[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.agent[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.agent[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.agent[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.agent[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.agent[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.agent[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.agent[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.agent[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.agent[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.agent[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.agent[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.agent[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.agent[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-10.fields.agent[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-10.fields.agent[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-10.fields.agent[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.agent[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-10.fields.agent[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.agent[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.agent[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.agent[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.agent[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.agent[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.agent[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.agent[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.agent[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.agent[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.agent[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.agent[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.agent[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.agent[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.agent[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.method
Type: list of object; optional
Sourced method assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-10.fields.method[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.method[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-10.fields.method[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-10.fields.method[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.method[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.method[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.method[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.method[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.method[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.method[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.method[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.method[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.method[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.method[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.method[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.method[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.method[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.method[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.method[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-10.fields.method[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.method[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.method[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.method[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.method[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.method[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.method[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.method[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.method[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.method[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.method[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.method[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.method[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.method[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.method[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.method[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.method[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-10.fields.method[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-10.fields.method[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-10.fields.method[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.method[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-10.fields.method[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.method[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.method[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.method[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.method[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.method[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.method[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.method[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.method[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.method[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.method[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.method[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.method[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.method[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.method[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.methodVersion
Type: list of object; optional
Sourced method version assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-10.fields.methodVersion[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.methodVersion[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-10.fields.methodVersion[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-10.fields.methodVersion[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.methodVersion[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.methodVersion[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.methodVersion[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-10.fields.methodVersion[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.methodVersion[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.methodVersion[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.methodVersion[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.methodVersion[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-10.fields.methodVersion[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-10.fields.methodVersion[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-10.fields.methodVersion[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.methodVersion[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-10.fields.methodVersion[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.methodVersion[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.outcome
Type: list of object; optional
Sourced outcome assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-10.fields.outcome[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.outcome[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-10.fields.outcome[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-10.fields.outcome[].content/option-1.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.outcome[].content/option-1.value/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-1.value/option-1.kind
Type: string; required in containing object
const: "access"
### entities[]/option-10.fields.outcome[].content/option-1.value/option-1.result
Type: string; required in containing object
enum: ["accessible","inaccessible","unknown"]
### entities[]/option-10.fields.outcome[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "identity"
### entities[]/option-10.fields.outcome[].content/option-1.value/option-2.result
Type: string; required in containing object
enum: ["matches","does_not_match","unknown"]
### entities[]/option-10.fields.outcome[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.outcome[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.outcome[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.outcome[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.outcome[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.outcome[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.outcome[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.outcome[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.outcome[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.outcome[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.outcome[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.outcome[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.outcome[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.outcome[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.outcome[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-10.fields.outcome[].content/option-2.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.outcome[].content/option-2.value/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-2.value/option-1.kind
Type: string; required in containing object
const: "access"
### entities[]/option-10.fields.outcome[].content/option-2.value/option-1.result
Type: string; required in containing object
enum: ["accessible","inaccessible","unknown"]
### entities[]/option-10.fields.outcome[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "identity"
### entities[]/option-10.fields.outcome[].content/option-2.value/option-2.result
Type: string; required in containing object
enum: ["matches","does_not_match","unknown"]
### entities[]/option-10.fields.outcome[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.outcome[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.outcome[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.outcome[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.outcome[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.outcome[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.outcome[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.outcome[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.outcome[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.outcome[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.outcome[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.outcome[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.outcome[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.outcome[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.outcome[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.outcome[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-10.fields.outcome[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-10.fields.outcome[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-10.fields.outcome[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.outcome[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-10.fields.outcome[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.outcome[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.outcome[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.outcome[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.outcome[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.outcome[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.outcome[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.outcome[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.outcome[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.outcome[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.outcome[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.outcome[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.outcome[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.outcome[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.outcome[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.notes
Type: list of object; optional
Sourced notes assertions. Alternatives and missingness are retained; declarations are not independent verification.
minItems: 1
### entities[]/option-10.fields.notes[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.notes[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-10.fields.notes[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-10.fields.notes[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.notes[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.notes[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.notes[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.notes[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.notes[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.notes[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.notes[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.notes[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.notes[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.notes[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.notes[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.notes[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.notes[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.notes[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.notes[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-10.fields.notes[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.notes[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.notes[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.notes[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.notes[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.notes[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.notes[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.notes[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.notes[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.notes[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.notes[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.notes[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.notes[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.notes[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.notes[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.notes[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.notes[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-10.fields.notes[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-10.fields.notes[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-10.fields.notes[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.notes[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-10.fields.notes[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.notes[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.fields.notes[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-10.fields.notes[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-10.fields.notes[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-10.fields.notes[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-10.fields.notes[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-10.fields.notes[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-10.fields.notes[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.notes[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-10.fields.notes[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-10.fields.notes[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-10.fields.notes[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-10.fields.notes[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.fields.notes[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-10.identifierId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-10.identifierAssertionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.kind
Type: string; required in containing object
const: "material"
### entities[]/option-11.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.label
Type: list of object; optional
Sourced label declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-11.fields.label[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.label[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.label[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-11.fields.label[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.label[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-11.fields.label[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.label[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.label[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.label[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.label[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.label[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.label[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.label[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.label[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.label[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.label[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.label[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.label[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.label[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.label[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.label[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.label[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.label[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.label[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.label[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.label[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.label[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-11.fields.label[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.label[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.label[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.label[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.label[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.label[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.label[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.label[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.label[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.label[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.label[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.label[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.label[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.label[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.label[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.label[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.label[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.label[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.label[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.label[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.label[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.label[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.label[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-11.fields.label[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-11.fields.label[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.label[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-11.fields.label[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.label[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.label[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-11.fields.label[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.label[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.label[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.label[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.label[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.label[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.label[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.label[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.label[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.label[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.label[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.label[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.label[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.label[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.label[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.label[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.label[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.label[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.label[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.type
Type: list of object; optional
Sourced type declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-11.fields.type[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.type[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.type[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-11.fields.type[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.type[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-11.fields.type[].content/option-1.value
Type: string; required in containing object
enum: ["material_sample","biological_sample","implant","debris","soil_sample","water_sample","vegetation_sample","other"]
### entities[]/option-11.fields.type[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.type[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.type[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.type[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.type[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.type[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.type[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.type[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.type[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.type[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.type[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.type[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.type[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.type[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.type[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.type[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.type[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.type[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.type[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.type[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.type[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-11.fields.type[].content/option-2.value
Type: string; required in containing object
enum: ["material_sample","biological_sample","implant","debris","soil_sample","water_sample","vegetation_sample","other"]
### entities[]/option-11.fields.type[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.type[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.type[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.type[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.type[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.type[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.type[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.type[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.type[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.type[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.type[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.type[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.type[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.type[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.type[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.type[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.type[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.type[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.type[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.type[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.type[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.type[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-11.fields.type[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-11.fields.type[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.type[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-11.fields.type[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.type[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.type[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-11.fields.type[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.type[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.type[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.type[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.type[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.type[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.type[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.type[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.type[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.type[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.type[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.type[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.type[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.type[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.type[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.type[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.type[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.type[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.type[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.description
Type: list of object; optional
Sourced description declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-11.fields.description[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.description[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.description[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-11.fields.description[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.description[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-11.fields.description[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.description[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.description[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.description[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.description[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.description[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.description[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.description[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.description[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.description[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.description[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.description[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.description[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.description[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.description[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.description[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.description[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.description[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.description[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.description[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.description[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.description[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-11.fields.description[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.description[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.description[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.description[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.description[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.description[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.description[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.description[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.description[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.description[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.description[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.description[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.description[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.description[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.description[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.description[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.description[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.description[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.description[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.description[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.description[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.description[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.description[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-11.fields.description[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-11.fields.description[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.description[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-11.fields.description[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.description[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.description[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-11.fields.description[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.description[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.description[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.description[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.description[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.description[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.description[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.description[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.description[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.description[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.description[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.description[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.description[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.description[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.description[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.description[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.description[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.description[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.description[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedQuality
Type: list of object; optional
Sourced reported quality declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-11.fields.reportedQuality[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedQuality[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.reportedQuality[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-11.fields.reportedQuality[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedQuality[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-11.fields.reportedQuality[].content/option-1.value
Type: string; required in containing object
Collection/handling quality of a physical evidence item.
enum: ["laboratory_grade","field_collected","uncontrolled","degraded","contaminated","unknown"]
### entities[]/option-11.fields.reportedQuality[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedQuality[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.reportedQuality[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedQuality[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.reportedQuality[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.reportedQuality[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.reportedQuality[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedQuality[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.reportedQuality[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.reportedQuality[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedQuality[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.reportedQuality[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.reportedQuality[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.reportedQuality[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedQuality[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.reportedQuality[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.reportedQuality[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedQuality[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedQuality[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedQuality[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedQuality[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-11.fields.reportedQuality[].content/option-2.value
Type: string; required in containing object
Collection/handling quality of a physical evidence item.
enum: ["laboratory_grade","field_collected","uncontrolled","degraded","contaminated","unknown"]
### entities[]/option-11.fields.reportedQuality[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedQuality[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedQuality[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.reportedQuality[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedQuality[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.reportedQuality[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.reportedQuality[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.reportedQuality[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedQuality[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.reportedQuality[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.reportedQuality[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedQuality[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.reportedQuality[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.reportedQuality[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.reportedQuality[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedQuality[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.reportedQuality[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.reportedQuality[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedQuality[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedQuality[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedQuality[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedQuality[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-11.fields.reportedQuality[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-11.fields.reportedQuality[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedQuality[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-11.fields.reportedQuality[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedQuality[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedQuality[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-11.fields.reportedQuality[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedQuality[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedQuality[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.reportedQuality[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedQuality[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.reportedQuality[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.reportedQuality[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.reportedQuality[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedQuality[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.reportedQuality[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.reportedQuality[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedQuality[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.reportedQuality[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.reportedQuality[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.reportedQuality[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedQuality[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.reportedQuality[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.reportedQuality[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedQuality[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectionTime
Type: list of object; optional
Sourced collection time declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-11.fields.collectionTime[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.collectionTime[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-11.fields.collectionTime[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-11.fields.collectionTime[].content/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-11.fields.collectionTime[].content/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-11.fields.collectionTime[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.collectionTime[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.collectionTime[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.collectionTime[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.collectionTime[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.collectionTime[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.collectionTime[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.collectionTime[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.collectionTime[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.collectionTime[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.collectionTime[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.collectionTime[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectionTime[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectionTime[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectionTime[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-11.fields.collectionTime[].content/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-11.fields.collectionTime[].content/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-11.fields.collectionTime[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectionTime[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.collectionTime[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.collectionTime[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.collectionTime[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.collectionTime[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.collectionTime[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.collectionTime[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.collectionTime[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.collectionTime[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.collectionTime[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.collectionTime[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.collectionTime[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectionTime[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectionTime[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectionTime[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-11.fields.collectionTime[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-11.fields.collectionTime[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-11.fields.collectionTime[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectionTime[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-11.fields.collectionTime[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectionTime[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.collectionTime[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.collectionTime[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.collectionTime[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.collectionTime[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.collectionTime[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.collectionTime[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.collectionTime[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.collectionTime[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.collectionTime[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionTime[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.collectionTime[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.collectionTime[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectionTime[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectionMethod
Type: list of object; optional
Sourced collection method declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-11.fields.collectionMethod[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionMethod[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.collectionMethod[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-11.fields.collectionMethod[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionMethod[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-11.fields.collectionMethod[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectionMethod[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionMethod[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.collectionMethod[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionMethod[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.collectionMethod[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.collectionMethod[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.collectionMethod[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionMethod[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.collectionMethod[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.collectionMethod[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionMethod[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.collectionMethod[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.collectionMethod[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.collectionMethod[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionMethod[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.collectionMethod[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.collectionMethod[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectionMethod[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectionMethod[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectionMethod[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionMethod[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-11.fields.collectionMethod[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectionMethod[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectionMethod[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionMethod[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.collectionMethod[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionMethod[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.collectionMethod[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.collectionMethod[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.collectionMethod[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionMethod[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.collectionMethod[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.collectionMethod[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionMethod[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.collectionMethod[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.collectionMethod[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.collectionMethod[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionMethod[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.collectionMethod[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.collectionMethod[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectionMethod[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectionMethod[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectionMethod[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionMethod[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-11.fields.collectionMethod[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-11.fields.collectionMethod[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionMethod[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-11.fields.collectionMethod[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectionMethod[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionMethod[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-11.fields.collectionMethod[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectionMethod[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionMethod[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.collectionMethod[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionMethod[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.collectionMethod[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.collectionMethod[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.collectionMethod[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionMethod[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.collectionMethod[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.collectionMethod[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionMethod[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.collectionMethod[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.collectionMethod[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.collectionMethod[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectionMethod[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.collectionMethod[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.collectionMethod[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectionMethod[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectorName
Type: list of object; optional
Sourced collector name declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-11.fields.collectorName[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorName[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.collectorName[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-11.fields.collectorName[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorName[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-11.fields.collectorName[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectorName[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorName[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.collectorName[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorName[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.collectorName[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.collectorName[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.collectorName[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorName[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.collectorName[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.collectorName[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorName[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.collectorName[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.collectorName[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.collectorName[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorName[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.collectorName[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.collectorName[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectorName[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectorName[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectorName[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorName[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-11.fields.collectorName[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectorName[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectorName[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorName[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.collectorName[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorName[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.collectorName[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.collectorName[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.collectorName[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorName[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.collectorName[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.collectorName[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorName[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.collectorName[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.collectorName[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.collectorName[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorName[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.collectorName[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.collectorName[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectorName[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectorName[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectorName[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorName[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-11.fields.collectorName[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-11.fields.collectorName[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorName[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-11.fields.collectorName[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectorName[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorName[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-11.fields.collectorName[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectorName[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorName[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.collectorName[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorName[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.collectorName[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.collectorName[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.collectorName[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorName[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.collectorName[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.collectorName[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorName[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.collectorName[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.collectorName[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.collectorName[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorName[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.collectorName[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.collectorName[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectorName[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectorOrganization
Type: list of object; optional
Sourced collector organization declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-11.fields.collectorOrganization[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorOrganization[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.collectorOrganization[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-11.fields.collectorOrganization[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorOrganization[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-11.fields.collectorOrganization[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectorOrganization[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorOrganization[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.collectorOrganization[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorOrganization[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.collectorOrganization[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.collectorOrganization[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.collectorOrganization[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorOrganization[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.collectorOrganization[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.collectorOrganization[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorOrganization[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.collectorOrganization[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.collectorOrganization[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.collectorOrganization[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorOrganization[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.collectorOrganization[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.collectorOrganization[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectorOrganization[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectorOrganization[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectorOrganization[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorOrganization[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-11.fields.collectorOrganization[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectorOrganization[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectorOrganization[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorOrganization[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.collectorOrganization[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorOrganization[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.collectorOrganization[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.collectorOrganization[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.collectorOrganization[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorOrganization[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.collectorOrganization[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.collectorOrganization[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorOrganization[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.collectorOrganization[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.collectorOrganization[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.collectorOrganization[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorOrganization[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.collectorOrganization[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.collectorOrganization[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectorOrganization[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectorOrganization[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectorOrganization[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorOrganization[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-11.fields.collectorOrganization[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-11.fields.collectorOrganization[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorOrganization[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-11.fields.collectorOrganization[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectorOrganization[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorOrganization[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-11.fields.collectorOrganization[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectorOrganization[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorOrganization[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.collectorOrganization[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorOrganization[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.collectorOrganization[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.collectorOrganization[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.collectorOrganization[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorOrganization[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.collectorOrganization[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.collectorOrganization[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorOrganization[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.collectorOrganization[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.collectorOrganization[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.collectorOrganization[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.collectorOrganization[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.collectorOrganization[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.collectorOrganization[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.collectorOrganization[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.storageLocation
Type: list of object; optional
Sourced storage location declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-11.fields.storageLocation[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.storageLocation[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.storageLocation[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-11.fields.storageLocation[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.storageLocation[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-11.fields.storageLocation[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.storageLocation[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.storageLocation[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.storageLocation[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.storageLocation[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.storageLocation[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.storageLocation[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.storageLocation[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.storageLocation[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.storageLocation[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.storageLocation[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.storageLocation[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.storageLocation[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.storageLocation[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.storageLocation[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.storageLocation[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.storageLocation[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.storageLocation[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.storageLocation[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.storageLocation[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.storageLocation[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.storageLocation[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-11.fields.storageLocation[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.storageLocation[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.storageLocation[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.storageLocation[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.storageLocation[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.storageLocation[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.storageLocation[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.storageLocation[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.storageLocation[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.storageLocation[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.storageLocation[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.storageLocation[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.storageLocation[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.storageLocation[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.storageLocation[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.storageLocation[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.storageLocation[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.storageLocation[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.storageLocation[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.storageLocation[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.storageLocation[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.storageLocation[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.storageLocation[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-11.fields.storageLocation[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-11.fields.storageLocation[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.storageLocation[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-11.fields.storageLocation[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.storageLocation[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.storageLocation[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-11.fields.storageLocation[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.storageLocation[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.storageLocation[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.storageLocation[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.storageLocation[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.storageLocation[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.storageLocation[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.storageLocation[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.storageLocation[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.storageLocation[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.storageLocation[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.storageLocation[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.storageLocation[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.storageLocation[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.storageLocation[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.storageLocation[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.storageLocation[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.storageLocation[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.storageLocation[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedCustodyStatus
Type: list of object; optional
Sourced reported custody status declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-11.fields.reportedCustodyStatus[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedCustodyStatus[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.reportedCustodyStatus[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-1.value
Type: string; required in containing object
Custody status of an evidence item.
enum: ["verified","partial","unverified","government_held","private_held","lost","destroyed","classified","unknown"]
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-2.value
Type: string; required in containing object
Custody status of an evidence item.
enum: ["verified","partial","unverified","government_held","private_held","lost","destroyed","classified","unknown"]
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedCustodyStatus[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.photographed
Type: list of object; optional
Sourced photographed declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-11.fields.photographed[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.photographed[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.photographed[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-11.fields.photographed[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.photographed[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-11.fields.photographed[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-11.fields.photographed[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.photographed[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.photographed[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.photographed[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.photographed[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.photographed[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.photographed[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.photographed[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.photographed[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.photographed[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.photographed[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.photographed[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.photographed[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.photographed[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.photographed[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.photographed[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.photographed[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.photographed[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.photographed[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.photographed[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.photographed[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-11.fields.photographed[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-11.fields.photographed[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.photographed[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.photographed[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.photographed[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.photographed[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.photographed[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.photographed[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.photographed[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.photographed[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.photographed[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.photographed[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.photographed[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.photographed[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.photographed[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.photographed[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.photographed[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.photographed[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.photographed[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.photographed[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.photographed[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.photographed[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.photographed[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-11.fields.photographed[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-11.fields.photographed[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.photographed[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-11.fields.photographed[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.photographed[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.photographed[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-11.fields.photographed[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.photographed[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.photographed[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.photographed[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.photographed[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.photographed[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.photographed[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.photographed[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.photographed[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.photographed[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.photographed[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.photographed[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.photographed[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.photographed[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.photographed[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.photographed[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.photographed[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.photographed[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.photographed[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.labReportAvailable
Type: list of object; optional
Sourced lab report available declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-11.fields.labReportAvailable[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.labReportAvailable[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.labReportAvailable[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-11.fields.labReportAvailable[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.labReportAvailable[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-11.fields.labReportAvailable[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-11.fields.labReportAvailable[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.labReportAvailable[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.labReportAvailable[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.labReportAvailable[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.labReportAvailable[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.labReportAvailable[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.labReportAvailable[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.labReportAvailable[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.labReportAvailable[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.labReportAvailable[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.labReportAvailable[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.labReportAvailable[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.labReportAvailable[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.labReportAvailable[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.labReportAvailable[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.labReportAvailable[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.labReportAvailable[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.labReportAvailable[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.labReportAvailable[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.labReportAvailable[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.labReportAvailable[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-11.fields.labReportAvailable[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-11.fields.labReportAvailable[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.labReportAvailable[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.labReportAvailable[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.labReportAvailable[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.labReportAvailable[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.labReportAvailable[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.labReportAvailable[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.labReportAvailable[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.labReportAvailable[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.labReportAvailable[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.labReportAvailable[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.labReportAvailable[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.labReportAvailable[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.labReportAvailable[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.labReportAvailable[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.labReportAvailable[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.labReportAvailable[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.labReportAvailable[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.labReportAvailable[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.labReportAvailable[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.labReportAvailable[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.labReportAvailable[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-11.fields.labReportAvailable[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-11.fields.labReportAvailable[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.labReportAvailable[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-11.fields.labReportAvailable[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.labReportAvailable[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.labReportAvailable[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-11.fields.labReportAvailable[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.labReportAvailable[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.labReportAvailable[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.labReportAvailable[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.labReportAvailable[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.labReportAvailable[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.labReportAvailable[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.labReportAvailable[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.labReportAvailable[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.labReportAvailable[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.labReportAvailable[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.labReportAvailable[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.labReportAvailable[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.labReportAvailable[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.labReportAvailable[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.labReportAvailable[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.labReportAvailable[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.labReportAvailable[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.labReportAvailable[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedAnalyses
Type: list of object; optional
Sourced reported analyses declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-11.fields.reportedAnalyses[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalyses[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.reportedAnalyses[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-11.fields.reportedAnalyses[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalyses[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-11.fields.reportedAnalyses[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-11.fields.reportedAnalyses[].content/option-1.value[]
Type: string
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedAnalyses[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalyses[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.reportedAnalyses[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalyses[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.reportedAnalyses[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.reportedAnalyses[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.reportedAnalyses[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalyses[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.reportedAnalyses[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.reportedAnalyses[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalyses[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.reportedAnalyses[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.reportedAnalyses[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.reportedAnalyses[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalyses[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.reportedAnalyses[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.reportedAnalyses[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedAnalyses[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedAnalyses[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedAnalyses[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalyses[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-11.fields.reportedAnalyses[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-11.fields.reportedAnalyses[].content/option-2.value[]
Type: string
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedAnalyses[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedAnalyses[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalyses[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.reportedAnalyses[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalyses[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.reportedAnalyses[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.reportedAnalyses[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.reportedAnalyses[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalyses[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.reportedAnalyses[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.reportedAnalyses[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalyses[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.reportedAnalyses[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.reportedAnalyses[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.reportedAnalyses[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalyses[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.reportedAnalyses[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.reportedAnalyses[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedAnalyses[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedAnalyses[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedAnalyses[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalyses[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-11.fields.reportedAnalyses[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-11.fields.reportedAnalyses[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalyses[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-11.fields.reportedAnalyses[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedAnalyses[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalyses[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-11.fields.reportedAnalyses[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedAnalyses[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalyses[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.reportedAnalyses[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalyses[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.reportedAnalyses[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.reportedAnalyses[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.reportedAnalyses[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalyses[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.reportedAnalyses[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.reportedAnalyses[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalyses[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.reportedAnalyses[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.reportedAnalyses[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.reportedAnalyses[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalyses[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.reportedAnalyses[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.reportedAnalyses[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedAnalyses[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedAnalysisSummary
Type: list of object; optional
Sourced reported analysis summary declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-11.fields.reportedAnalysisSummary[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalysisSummary[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.reportedAnalysisSummary[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.reportedAnalysisSummary[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.supportRefs
Type: list of object; optional
Sourced support refs declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-11.fields.supportRefs[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.supportRefs[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.supportRefs[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-11.fields.supportRefs[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.supportRefs[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-11.fields.supportRefs[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-11.fields.supportRefs[].content/option-1.value[]
Type: string
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.supportRefs[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.supportRefs[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.supportRefs[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.supportRefs[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.supportRefs[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.supportRefs[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.supportRefs[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.supportRefs[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.supportRefs[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.supportRefs[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.supportRefs[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.supportRefs[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.supportRefs[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.supportRefs[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.supportRefs[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.supportRefs[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.supportRefs[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.supportRefs[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.supportRefs[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.supportRefs[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.supportRefs[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-11.fields.supportRefs[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-11.fields.supportRefs[].content/option-2.value[]
Type: string
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.supportRefs[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.supportRefs[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.supportRefs[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.supportRefs[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.supportRefs[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.supportRefs[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.supportRefs[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.supportRefs[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.supportRefs[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.supportRefs[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.supportRefs[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.supportRefs[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.supportRefs[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.supportRefs[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.supportRefs[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.supportRefs[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.supportRefs[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.supportRefs[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.supportRefs[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.supportRefs[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.supportRefs[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.supportRefs[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-11.fields.supportRefs[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-11.fields.supportRefs[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.supportRefs[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-11.fields.supportRefs[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.supportRefs[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.supportRefs[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-11.fields.supportRefs[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.supportRefs[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.supportRefs[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.supportRefs[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.supportRefs[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.supportRefs[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.supportRefs[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.supportRefs[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.supportRefs[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.supportRefs[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.supportRefs[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.supportRefs[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.supportRefs[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.supportRefs[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.supportRefs[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.supportRefs[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.supportRefs[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.supportRefs[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.supportRefs[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.notes
Type: list of object; optional
Sourced notes declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-11.fields.notes[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.notes[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.notes[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-11.fields.notes[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.notes[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-11.fields.notes[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.notes[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.notes[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.notes[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.notes[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.notes[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.notes[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.notes[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.notes[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.notes[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.notes[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.notes[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.notes[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.notes[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.notes[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.notes[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.notes[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.notes[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.notes[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.notes[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.notes[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.notes[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-11.fields.notes[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.notes[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.notes[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.notes[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.notes[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.notes[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.notes[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.notes[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.notes[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.notes[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.notes[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.notes[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.notes[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.notes[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.notes[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.notes[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.notes[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.notes[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.notes[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.notes[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.notes[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.notes[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.notes[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-11.fields.notes[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-11.fields.notes[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.notes[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-11.fields.notes[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.notes[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.notes[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-11.fields.notes[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.notes[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.notes[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.fields.notes[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-11.fields.notes[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-11.fields.notes[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-11.fields.notes[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-11.fields.notes[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.notes[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-11.fields.notes[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-11.fields.notes[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.notes[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-11.fields.notes[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.notes[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-11.fields.notes[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.fields.notes[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-11.fields.notes[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-11.fields.notes[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.fields.notes[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-11.selectionRef
Type: object; optional
Optional link to an existing exact specimen-selection snapshot. Reuse that specimen identity; external resolution is a separate check.
Extra fields: Not allowed in this object
### entities[]/option-11.selectionRef.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-11.selectionRef.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.selectionRef.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:physical-sample-selection:0.1.0"
### entities[]/option-11.selectionRef.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-11.selectionRef.sampleId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.lineage
Type: choice; required in containing object
Declared collection, an identified preparation, or unresolved lineage. A derived specimen does not inherit its parents' collection or custody.
Choose: Exactly one of the alternatives below
### entities[]/option-11.lineage/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.lineage/option-1.kind
Type: string; required in containing object
const: "collected"
### entities[]/option-11.lineage/option-1.traceId
Type: string; optional
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.lineage/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.lineage/option-2.kind
Type: string; required in containing object
const: "derived"
### entities[]/option-11.lineage/option-2.preparationId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-11.lineage/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-11.lineage/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-11.lineage/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.kind
Type: string; required in containing object
const: "material_trace"
### entities[]/option-12.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.type
Type: list of object; optional
Sourced type declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-12.fields.type[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.type[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.type[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-12.fields.type[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.type[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-12.fields.type[].content/option-1.value
Type: string; required in containing object
enum: ["ground_trace","impression","burn_mark","other"]
### entities[]/option-12.fields.type[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.type[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.type[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-12.fields.type[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-12.fields.type[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-12.fields.type[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-12.fields.type[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.type[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-12.fields.type[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-12.fields.type[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.type[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-12.fields.type[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.type[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.type[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.type[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-12.fields.type[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-12.fields.type[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.type[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.type[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.type[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.type[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-12.fields.type[].content/option-2.value
Type: string; required in containing object
enum: ["ground_trace","impression","burn_mark","other"]
### entities[]/option-12.fields.type[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.type[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.type[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.type[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-12.fields.type[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-12.fields.type[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-12.fields.type[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-12.fields.type[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.type[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-12.fields.type[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-12.fields.type[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.type[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-12.fields.type[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.type[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.type[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.type[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-12.fields.type[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-12.fields.type[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.type[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.type[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.type[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.type[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-12.fields.type[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-12.fields.type[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.type[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-12.fields.type[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.type[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.type[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-12.fields.type[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.type[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.type[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.type[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-12.fields.type[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-12.fields.type[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-12.fields.type[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-12.fields.type[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.type[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-12.fields.type[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-12.fields.type[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.type[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-12.fields.type[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.type[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.type[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.type[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-12.fields.type[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-12.fields.type[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.type[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.description
Type: list of object; optional
Sourced description declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-12.fields.description[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.description[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.description[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-12.fields.description[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.description[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-12.fields.description[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.description[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.description[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.description[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-12.fields.description[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-12.fields.description[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-12.fields.description[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-12.fields.description[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.description[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-12.fields.description[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-12.fields.description[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.description[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-12.fields.description[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.description[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.description[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.description[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-12.fields.description[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-12.fields.description[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.description[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.description[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.description[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.description[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-12.fields.description[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.description[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.description[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.description[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.description[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-12.fields.description[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-12.fields.description[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-12.fields.description[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-12.fields.description[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.description[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-12.fields.description[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-12.fields.description[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.description[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-12.fields.description[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.description[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.description[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.description[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-12.fields.description[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-12.fields.description[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.description[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.description[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.description[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.description[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-12.fields.description[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-12.fields.description[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.description[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-12.fields.description[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.description[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.description[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-12.fields.description[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.description[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.description[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.description[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-12.fields.description[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-12.fields.description[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-12.fields.description[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-12.fields.description[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.description[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-12.fields.description[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-12.fields.description[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.description[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-12.fields.description[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.description[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.description[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.description[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-12.fields.description[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-12.fields.description[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.description[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.recordedTime
Type: list of object; optional
Sourced recorded time declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-12.fields.recordedTime[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.recordedTime[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-12.fields.recordedTime[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-12.fields.recordedTime[].content/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-12.fields.recordedTime[].content/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-12.fields.recordedTime[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.recordedTime[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-12.fields.recordedTime[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-12.fields.recordedTime[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-12.fields.recordedTime[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-12.fields.recordedTime[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-12.fields.recordedTime[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-12.fields.recordedTime[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.recordedTime[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.recordedTime[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-12.fields.recordedTime[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-12.fields.recordedTime[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.recordedTime[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.recordedTime[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.recordedTime[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-12.fields.recordedTime[].content/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-12.fields.recordedTime[].content/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-12.fields.recordedTime[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.recordedTime[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.recordedTime[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-12.fields.recordedTime[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-12.fields.recordedTime[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-12.fields.recordedTime[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-12.fields.recordedTime[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-12.fields.recordedTime[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-12.fields.recordedTime[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.recordedTime[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.recordedTime[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-12.fields.recordedTime[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-12.fields.recordedTime[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.recordedTime[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.recordedTime[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.recordedTime[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-12.fields.recordedTime[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-12.fields.recordedTime[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-12.fields.recordedTime[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.recordedTime[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-12.fields.recordedTime[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.recordedTime[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.recordedTime[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-12.fields.recordedTime[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-12.fields.recordedTime[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-12.fields.recordedTime[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-12.fields.recordedTime[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-12.fields.recordedTime[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-12.fields.recordedTime[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.recordedTime[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.recordedTime[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedTime[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-12.fields.recordedTime[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-12.fields.recordedTime[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.recordedTime[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.recordedBy
Type: list of object; optional
Sourced recorded by declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-12.fields.recordedBy[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedBy[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.recordedBy[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-12.fields.recordedBy[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedBy[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-12.fields.recordedBy[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.recordedBy[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedBy[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.recordedBy[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedBy[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-12.fields.recordedBy[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-12.fields.recordedBy[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-12.fields.recordedBy[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedBy[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-12.fields.recordedBy[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-12.fields.recordedBy[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedBy[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-12.fields.recordedBy[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.recordedBy[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.recordedBy[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedBy[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-12.fields.recordedBy[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-12.fields.recordedBy[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.recordedBy[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.recordedBy[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.recordedBy[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedBy[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-12.fields.recordedBy[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.recordedBy[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.recordedBy[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedBy[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.recordedBy[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedBy[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-12.fields.recordedBy[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-12.fields.recordedBy[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-12.fields.recordedBy[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedBy[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-12.fields.recordedBy[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-12.fields.recordedBy[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedBy[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-12.fields.recordedBy[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.recordedBy[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.recordedBy[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedBy[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-12.fields.recordedBy[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-12.fields.recordedBy[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.recordedBy[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.recordedBy[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.recordedBy[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedBy[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-12.fields.recordedBy[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-12.fields.recordedBy[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedBy[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-12.fields.recordedBy[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.recordedBy[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedBy[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-12.fields.recordedBy[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.recordedBy[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedBy[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.recordedBy[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedBy[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-12.fields.recordedBy[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-12.fields.recordedBy[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-12.fields.recordedBy[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedBy[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-12.fields.recordedBy[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-12.fields.recordedBy[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedBy[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-12.fields.recordedBy[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.recordedBy[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.recordedBy[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.recordedBy[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-12.fields.recordedBy[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-12.fields.recordedBy[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.recordedBy[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.locationDescription
Type: list of object; optional
Sourced location description declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-12.fields.locationDescription[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.locationDescription[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.locationDescription[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-12.fields.locationDescription[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.locationDescription[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-12.fields.locationDescription[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.locationDescription[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.locationDescription[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.locationDescription[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-12.fields.locationDescription[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-12.fields.locationDescription[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-12.fields.locationDescription[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-12.fields.locationDescription[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.locationDescription[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-12.fields.locationDescription[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-12.fields.locationDescription[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.locationDescription[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-12.fields.locationDescription[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.locationDescription[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.locationDescription[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.locationDescription[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-12.fields.locationDescription[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-12.fields.locationDescription[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.locationDescription[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.locationDescription[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.locationDescription[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.locationDescription[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-12.fields.locationDescription[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.locationDescription[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.locationDescription[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.locationDescription[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.locationDescription[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-12.fields.locationDescription[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-12.fields.locationDescription[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-12.fields.locationDescription[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-12.fields.locationDescription[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.locationDescription[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-12.fields.locationDescription[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-12.fields.locationDescription[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.locationDescription[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-12.fields.locationDescription[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.locationDescription[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.locationDescription[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.locationDescription[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-12.fields.locationDescription[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-12.fields.locationDescription[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.locationDescription[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.locationDescription[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.locationDescription[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.locationDescription[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-12.fields.locationDescription[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-12.fields.locationDescription[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.locationDescription[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-12.fields.locationDescription[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.locationDescription[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.locationDescription[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-12.fields.locationDescription[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.locationDescription[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.locationDescription[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.locationDescription[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-12.fields.locationDescription[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-12.fields.locationDescription[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-12.fields.locationDescription[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-12.fields.locationDescription[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.locationDescription[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-12.fields.locationDescription[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-12.fields.locationDescription[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.locationDescription[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-12.fields.locationDescription[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.locationDescription[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.locationDescription[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.locationDescription[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-12.fields.locationDescription[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-12.fields.locationDescription[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.locationDescription[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.photographed
Type: list of object; optional
Sourced photographed declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-12.fields.photographed[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.photographed[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.photographed[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-12.fields.photographed[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.photographed[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-12.fields.photographed[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-12.fields.photographed[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.photographed[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.photographed[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-12.fields.photographed[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-12.fields.photographed[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-12.fields.photographed[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-12.fields.photographed[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.photographed[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-12.fields.photographed[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-12.fields.photographed[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.photographed[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-12.fields.photographed[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.photographed[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.photographed[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.photographed[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-12.fields.photographed[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-12.fields.photographed[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.photographed[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.photographed[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.photographed[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.photographed[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-12.fields.photographed[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-12.fields.photographed[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.photographed[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.photographed[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.photographed[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-12.fields.photographed[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-12.fields.photographed[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-12.fields.photographed[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-12.fields.photographed[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.photographed[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-12.fields.photographed[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-12.fields.photographed[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.photographed[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-12.fields.photographed[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.photographed[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.photographed[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.photographed[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-12.fields.photographed[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-12.fields.photographed[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.photographed[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.photographed[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.photographed[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.photographed[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-12.fields.photographed[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-12.fields.photographed[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.photographed[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-12.fields.photographed[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.photographed[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.photographed[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-12.fields.photographed[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.photographed[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.photographed[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.photographed[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-12.fields.photographed[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-12.fields.photographed[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-12.fields.photographed[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-12.fields.photographed[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.photographed[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-12.fields.photographed[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-12.fields.photographed[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.photographed[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-12.fields.photographed[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.photographed[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.photographed[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.photographed[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-12.fields.photographed[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-12.fields.photographed[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.photographed[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.supportRefs
Type: list of object; optional
Sourced support refs declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-12.fields.supportRefs[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.supportRefs[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.supportRefs[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-12.fields.supportRefs[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.supportRefs[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-12.fields.supportRefs[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-12.fields.supportRefs[].content/option-1.value[]
Type: string
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.supportRefs[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.supportRefs[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.supportRefs[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-12.fields.supportRefs[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-12.fields.supportRefs[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-12.fields.supportRefs[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-12.fields.supportRefs[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.supportRefs[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-12.fields.supportRefs[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-12.fields.supportRefs[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.supportRefs[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-12.fields.supportRefs[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.supportRefs[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.supportRefs[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.supportRefs[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-12.fields.supportRefs[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-12.fields.supportRefs[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.supportRefs[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.supportRefs[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.supportRefs[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.supportRefs[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-12.fields.supportRefs[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-12.fields.supportRefs[].content/option-2.value[]
Type: string
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.supportRefs[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.supportRefs[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.supportRefs[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.supportRefs[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-12.fields.supportRefs[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-12.fields.supportRefs[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-12.fields.supportRefs[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-12.fields.supportRefs[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.supportRefs[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-12.fields.supportRefs[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-12.fields.supportRefs[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.supportRefs[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-12.fields.supportRefs[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.supportRefs[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.supportRefs[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.supportRefs[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-12.fields.supportRefs[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-12.fields.supportRefs[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.supportRefs[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.supportRefs[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.supportRefs[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.supportRefs[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-12.fields.supportRefs[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-12.fields.supportRefs[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.supportRefs[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-12.fields.supportRefs[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.supportRefs[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.supportRefs[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-12.fields.supportRefs[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.supportRefs[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.supportRefs[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.supportRefs[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-12.fields.supportRefs[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-12.fields.supportRefs[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-12.fields.supportRefs[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-12.fields.supportRefs[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.supportRefs[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-12.fields.supportRefs[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-12.fields.supportRefs[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.supportRefs[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-12.fields.supportRefs[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.supportRefs[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.supportRefs[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.supportRefs[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-12.fields.supportRefs[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-12.fields.supportRefs[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.supportRefs[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.notes
Type: list of object; optional
Sourced notes declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-12.fields.notes[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.notes[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.notes[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-12.fields.notes[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.notes[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-12.fields.notes[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.notes[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.notes[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.notes[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-12.fields.notes[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-12.fields.notes[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-12.fields.notes[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-12.fields.notes[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.notes[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-12.fields.notes[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-12.fields.notes[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.notes[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-12.fields.notes[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.notes[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.notes[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.notes[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-12.fields.notes[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-12.fields.notes[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.notes[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.notes[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.notes[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.notes[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-12.fields.notes[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.notes[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.notes[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.notes[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.notes[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-12.fields.notes[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-12.fields.notes[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-12.fields.notes[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-12.fields.notes[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.notes[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-12.fields.notes[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-12.fields.notes[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.notes[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-12.fields.notes[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.notes[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.notes[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.notes[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-12.fields.notes[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-12.fields.notes[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.notes[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.notes[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.notes[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.notes[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-12.fields.notes[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-12.fields.notes[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.notes[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-12.fields.notes[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.notes[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.notes[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-12.fields.notes[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.notes[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.notes[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-12.fields.notes[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-12.fields.notes[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-12.fields.notes[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-12.fields.notes[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-12.fields.notes[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.notes[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-12.fields.notes[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-12.fields.notes[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.notes[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-12.fields.notes[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.notes[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-12.fields.notes[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-12.fields.notes[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-12.fields.notes[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-12.fields.notes[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-12.fields.notes[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.kind
Type: string; required in containing object
const: "material_preparation"
### entities[]/option-13.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.method
Type: list of object; optional
Sourced method declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-13.fields.method[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.method[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.method[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-13.fields.method[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.method[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-13.fields.method[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.method[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.method[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.method[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-13.fields.method[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-13.fields.method[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-13.fields.method[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-13.fields.method[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.method[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-13.fields.method[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-13.fields.method[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.method[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-13.fields.method[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.method[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.method[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.method[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-13.fields.method[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-13.fields.method[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.method[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.method[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.method[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.method[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-13.fields.method[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.method[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.method[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.method[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.method[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-13.fields.method[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-13.fields.method[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-13.fields.method[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-13.fields.method[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.method[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-13.fields.method[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-13.fields.method[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.method[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-13.fields.method[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.method[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.method[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.method[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-13.fields.method[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-13.fields.method[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.method[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.method[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.method[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.method[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-13.fields.method[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-13.fields.method[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.method[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-13.fields.method[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.method[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.method[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-13.fields.method[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.method[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.method[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.method[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-13.fields.method[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-13.fields.method[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-13.fields.method[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-13.fields.method[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.method[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-13.fields.method[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-13.fields.method[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.method[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-13.fields.method[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.method[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.method[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.method[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-13.fields.method[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-13.fields.method[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.method[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.methodVersion
Type: list of object; optional
Sourced method version declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-13.fields.methodVersion[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.methodVersion[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.methodVersion[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-13.fields.methodVersion[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.methodVersion[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-13.fields.methodVersion[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.methodVersion[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.methodVersion[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.methodVersion[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-13.fields.methodVersion[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-13.fields.methodVersion[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-13.fields.methodVersion[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-13.fields.methodVersion[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.methodVersion[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-13.fields.methodVersion[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-13.fields.methodVersion[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.methodVersion[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-13.fields.methodVersion[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.methodVersion[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.methodVersion[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.methodVersion[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-13.fields.methodVersion[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-13.fields.methodVersion[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.methodVersion[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.methodVersion[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.methodVersion[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.methodVersion[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-13.fields.methodVersion[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.methodVersion[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.methodVersion[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.methodVersion[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.methodVersion[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-13.fields.methodVersion[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-13.fields.methodVersion[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-13.fields.methodVersion[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-13.fields.methodVersion[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.methodVersion[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-13.fields.methodVersion[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-13.fields.methodVersion[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.methodVersion[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-13.fields.methodVersion[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.methodVersion[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.methodVersion[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.methodVersion[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-13.fields.methodVersion[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-13.fields.methodVersion[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.methodVersion[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.methodVersion[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.methodVersion[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.methodVersion[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-13.fields.methodVersion[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-13.fields.methodVersion[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.methodVersion[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-13.fields.methodVersion[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.methodVersion[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.methodVersion[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-13.fields.methodVersion[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.methodVersion[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.methodVersion[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.methodVersion[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-13.fields.methodVersion[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-13.fields.methodVersion[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-13.fields.methodVersion[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-13.fields.methodVersion[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.methodVersion[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-13.fields.methodVersion[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-13.fields.methodVersion[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.methodVersion[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-13.fields.methodVersion[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.methodVersion[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.methodVersion[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.methodVersion[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-13.fields.methodVersion[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-13.fields.methodVersion[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.methodVersion[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.performedAt
Type: list of object; optional
Sourced performed at declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-13.fields.performedAt[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.performedAt[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-13.fields.performedAt[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-13.fields.performedAt[].content/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-13.fields.performedAt[].content/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-13.fields.performedAt[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.performedAt[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-13.fields.performedAt[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-13.fields.performedAt[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-13.fields.performedAt[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-13.fields.performedAt[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-13.fields.performedAt[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-13.fields.performedAt[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.performedAt[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.performedAt[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-13.fields.performedAt[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-13.fields.performedAt[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.performedAt[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.performedAt[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.performedAt[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-13.fields.performedAt[].content/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-13.fields.performedAt[].content/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-13.fields.performedAt[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.performedAt[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.performedAt[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-13.fields.performedAt[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-13.fields.performedAt[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-13.fields.performedAt[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-13.fields.performedAt[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-13.fields.performedAt[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-13.fields.performedAt[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.performedAt[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.performedAt[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-13.fields.performedAt[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-13.fields.performedAt[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.performedAt[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.performedAt[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.performedAt[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-13.fields.performedAt[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-13.fields.performedAt[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-13.fields.performedAt[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.performedAt[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-13.fields.performedAt[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.performedAt[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.performedAt[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-13.fields.performedAt[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-13.fields.performedAt[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-13.fields.performedAt[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-13.fields.performedAt[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-13.fields.performedAt[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-13.fields.performedAt[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.performedAt[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.performedAt[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.performedAt[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-13.fields.performedAt[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-13.fields.performedAt[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.performedAt[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.operator
Type: list of object; optional
Sourced operator declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-13.fields.operator[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.operator[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.operator[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-13.fields.operator[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.operator[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-13.fields.operator[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.operator[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.operator[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.operator[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-13.fields.operator[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-13.fields.operator[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-13.fields.operator[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-13.fields.operator[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.operator[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-13.fields.operator[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-13.fields.operator[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.operator[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-13.fields.operator[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.operator[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.operator[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.operator[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-13.fields.operator[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-13.fields.operator[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.operator[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.operator[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.operator[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.operator[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-13.fields.operator[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.operator[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.operator[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.operator[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.operator[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-13.fields.operator[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-13.fields.operator[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-13.fields.operator[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-13.fields.operator[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.operator[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-13.fields.operator[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-13.fields.operator[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.operator[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-13.fields.operator[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.operator[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.operator[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.operator[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-13.fields.operator[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-13.fields.operator[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.operator[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.operator[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.operator[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.operator[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-13.fields.operator[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-13.fields.operator[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.operator[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-13.fields.operator[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.operator[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.operator[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-13.fields.operator[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.operator[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.operator[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.operator[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-13.fields.operator[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-13.fields.operator[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-13.fields.operator[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-13.fields.operator[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.operator[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-13.fields.operator[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-13.fields.operator[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.operator[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-13.fields.operator[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.operator[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.operator[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.operator[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-13.fields.operator[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-13.fields.operator[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.operator[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.organization
Type: list of object; optional
Sourced organization declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-13.fields.organization[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.organization[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.organization[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-13.fields.organization[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.organization[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-13.fields.organization[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.organization[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.organization[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.organization[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-13.fields.organization[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-13.fields.organization[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-13.fields.organization[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-13.fields.organization[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.organization[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-13.fields.organization[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-13.fields.organization[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.organization[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-13.fields.organization[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.organization[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.organization[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.organization[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-13.fields.organization[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-13.fields.organization[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.organization[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.organization[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.organization[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.organization[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-13.fields.organization[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.organization[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.organization[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.organization[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.organization[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-13.fields.organization[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-13.fields.organization[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-13.fields.organization[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-13.fields.organization[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.organization[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-13.fields.organization[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-13.fields.organization[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.organization[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-13.fields.organization[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.organization[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.organization[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.organization[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-13.fields.organization[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-13.fields.organization[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.organization[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.organization[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.organization[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.organization[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-13.fields.organization[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-13.fields.organization[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.organization[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-13.fields.organization[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.organization[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.organization[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-13.fields.organization[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.organization[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.organization[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.organization[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-13.fields.organization[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-13.fields.organization[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-13.fields.organization[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-13.fields.organization[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.organization[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-13.fields.organization[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-13.fields.organization[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.organization[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-13.fields.organization[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.organization[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.organization[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.organization[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-13.fields.organization[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-13.fields.organization[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.organization[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.description
Type: list of object; optional
Sourced description declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-13.fields.description[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.description[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.description[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-13.fields.description[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.description[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-13.fields.description[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.description[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.description[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.description[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-13.fields.description[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-13.fields.description[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-13.fields.description[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-13.fields.description[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.description[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-13.fields.description[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-13.fields.description[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.description[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-13.fields.description[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.description[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.description[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.description[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-13.fields.description[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-13.fields.description[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.description[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.description[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.description[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.description[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-13.fields.description[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.description[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.description[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.description[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.description[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-13.fields.description[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-13.fields.description[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-13.fields.description[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-13.fields.description[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.description[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-13.fields.description[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-13.fields.description[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.description[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-13.fields.description[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.description[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.description[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.description[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-13.fields.description[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-13.fields.description[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.description[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.description[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.description[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.description[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-13.fields.description[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-13.fields.description[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.description[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-13.fields.description[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.description[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.description[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-13.fields.description[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.description[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.description[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.description[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-13.fields.description[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-13.fields.description[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-13.fields.description[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-13.fields.description[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.description[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-13.fields.description[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-13.fields.description[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.description[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-13.fields.description[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.description[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.description[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.description[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-13.fields.description[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-13.fields.description[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.description[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.supportRefs
Type: list of object; optional
Sourced support refs declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-13.fields.supportRefs[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.supportRefs[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.supportRefs[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-13.fields.supportRefs[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.supportRefs[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-13.fields.supportRefs[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-13.fields.supportRefs[].content/option-1.value[]
Type: string
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.supportRefs[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.supportRefs[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.supportRefs[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-13.fields.supportRefs[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-13.fields.supportRefs[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-13.fields.supportRefs[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-13.fields.supportRefs[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.supportRefs[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-13.fields.supportRefs[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-13.fields.supportRefs[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.supportRefs[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-13.fields.supportRefs[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.supportRefs[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.supportRefs[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.supportRefs[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-13.fields.supportRefs[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-13.fields.supportRefs[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.supportRefs[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.supportRefs[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.supportRefs[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.supportRefs[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-13.fields.supportRefs[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-13.fields.supportRefs[].content/option-2.value[]
Type: string
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.supportRefs[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.supportRefs[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.supportRefs[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.supportRefs[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-13.fields.supportRefs[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-13.fields.supportRefs[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-13.fields.supportRefs[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-13.fields.supportRefs[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.supportRefs[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-13.fields.supportRefs[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-13.fields.supportRefs[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.supportRefs[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-13.fields.supportRefs[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.supportRefs[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.supportRefs[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.supportRefs[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-13.fields.supportRefs[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-13.fields.supportRefs[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.supportRefs[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.supportRefs[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.supportRefs[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.supportRefs[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-13.fields.supportRefs[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-13.fields.supportRefs[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.supportRefs[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-13.fields.supportRefs[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.supportRefs[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.supportRefs[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-13.fields.supportRefs[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.supportRefs[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.supportRefs[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.supportRefs[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-13.fields.supportRefs[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-13.fields.supportRefs[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-13.fields.supportRefs[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-13.fields.supportRefs[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.supportRefs[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-13.fields.supportRefs[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-13.fields.supportRefs[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.supportRefs[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-13.fields.supportRefs[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.supportRefs[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.supportRefs[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.supportRefs[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-13.fields.supportRefs[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-13.fields.supportRefs[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.supportRefs[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.notes
Type: list of object; optional
Sourced notes declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-13.fields.notes[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.notes[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.notes[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-13.fields.notes[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.notes[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-13.fields.notes[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.notes[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.notes[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.notes[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-13.fields.notes[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-13.fields.notes[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-13.fields.notes[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-13.fields.notes[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.notes[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-13.fields.notes[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-13.fields.notes[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.notes[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-13.fields.notes[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.notes[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.notes[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.notes[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-13.fields.notes[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-13.fields.notes[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.notes[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.notes[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.notes[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.notes[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-13.fields.notes[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.notes[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.notes[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.notes[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.notes[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-13.fields.notes[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-13.fields.notes[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-13.fields.notes[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-13.fields.notes[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.notes[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-13.fields.notes[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-13.fields.notes[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.notes[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-13.fields.notes[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.notes[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.notes[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.notes[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-13.fields.notes[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-13.fields.notes[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.notes[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.notes[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.notes[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.notes[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-13.fields.notes[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-13.fields.notes[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.notes[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-13.fields.notes[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.notes[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.notes[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-13.fields.notes[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.notes[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.notes[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.fields.notes[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-13.fields.notes[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-13.fields.notes[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-13.fields.notes[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-13.fields.notes[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.notes[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-13.fields.notes[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-13.fields.notes[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.notes[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-13.fields.notes[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.notes[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-13.fields.notes[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-13.fields.notes[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-13.fields.notes[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-13.fields.notes[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.fields.notes[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-13.inputMaterialIds
Type: list of string; required in containing object
Identified input specimens. A trace or digital artifact is not a specimen.
minItems: 1
### entities[]/option-13.inputMaterialIds[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.outputMaterialIds
Type: list of string; required in containing object
Distinct output specimens. Splits and mixtures are relationships, not a mass-balance certification.
minItems: 1
### entities[]/option-13.outputMaterialIds[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-13.operation
Type: string; required in containing object
enum: ["split","mixture","preparation","other"]
### entities[]/option-14
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.kind
Type: string; required in containing object
const: "material_custody_action"
### entities[]/option-14.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.action
Type: list of object; optional
Sourced action declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-14.fields.action[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.action[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.action[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-14.fields.action[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.action[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-14.fields.action[].content/option-1.value
Type: string; required in containing object
An action recorded in a chain-of-custody entry.
enum: ["creation","collection","transfer","storage","analysis","release","classification","destruction","loss","recovery","other"]
### entities[]/option-14.fields.action[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.action[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.action[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-14.fields.action[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-14.fields.action[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-14.fields.action[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-14.fields.action[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.action[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-14.fields.action[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-14.fields.action[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.action[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-14.fields.action[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.action[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.action[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.action[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-14.fields.action[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-14.fields.action[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.action[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.action[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.action[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.action[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-14.fields.action[].content/option-2.value
Type: string; required in containing object
An action recorded in a chain-of-custody entry.
enum: ["creation","collection","transfer","storage","analysis","release","classification","destruction","loss","recovery","other"]
### entities[]/option-14.fields.action[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.action[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.action[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.action[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-14.fields.action[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-14.fields.action[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-14.fields.action[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-14.fields.action[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.action[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-14.fields.action[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-14.fields.action[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.action[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-14.fields.action[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.action[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.action[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.action[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-14.fields.action[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-14.fields.action[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.action[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.action[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.action[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.action[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-14.fields.action[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-14.fields.action[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.action[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-14.fields.action[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.action[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.action[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-14.fields.action[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.action[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.action[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.action[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-14.fields.action[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-14.fields.action[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-14.fields.action[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-14.fields.action[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.action[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-14.fields.action[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-14.fields.action[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.action[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-14.fields.action[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.action[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.action[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.action[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-14.fields.action[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-14.fields.action[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.action[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.occurredAt
Type: list of object; optional
Sourced occurred at declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-14.fields.occurredAt[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.occurredAt[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-14.fields.occurredAt[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-14.fields.occurredAt[].content/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-14.fields.occurredAt[].content/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-14.fields.occurredAt[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.occurredAt[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-14.fields.occurredAt[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-14.fields.occurredAt[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-14.fields.occurredAt[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-14.fields.occurredAt[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-14.fields.occurredAt[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-14.fields.occurredAt[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.occurredAt[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.occurredAt[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-14.fields.occurredAt[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-14.fields.occurredAt[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.occurredAt[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.occurredAt[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.occurredAt[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-14.fields.occurredAt[].content/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-14.fields.occurredAt[].content/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-14.fields.occurredAt[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.occurredAt[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.occurredAt[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-14.fields.occurredAt[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-14.fields.occurredAt[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-14.fields.occurredAt[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-14.fields.occurredAt[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-14.fields.occurredAt[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-14.fields.occurredAt[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.occurredAt[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.occurredAt[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-14.fields.occurredAt[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-14.fields.occurredAt[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.occurredAt[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.occurredAt[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.occurredAt[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-14.fields.occurredAt[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-14.fields.occurredAt[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-14.fields.occurredAt[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.occurredAt[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-14.fields.occurredAt[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.occurredAt[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.occurredAt[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-14.fields.occurredAt[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-14.fields.occurredAt[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-14.fields.occurredAt[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-14.fields.occurredAt[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-14.fields.occurredAt[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-14.fields.occurredAt[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.occurredAt[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.occurredAt[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.occurredAt[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-14.fields.occurredAt[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-14.fields.occurredAt[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.occurredAt[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.from
Type: list of object; optional
Sourced from declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-14.fields.from[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.from[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.from[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-14.fields.from[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.from[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-14.fields.from[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.from[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.from[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.from[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-14.fields.from[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-14.fields.from[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-14.fields.from[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-14.fields.from[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.from[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-14.fields.from[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-14.fields.from[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.from[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-14.fields.from[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.from[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.from[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.from[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-14.fields.from[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-14.fields.from[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.from[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.from[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.from[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.from[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-14.fields.from[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.from[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.from[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.from[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.from[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-14.fields.from[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-14.fields.from[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-14.fields.from[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-14.fields.from[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.from[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-14.fields.from[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-14.fields.from[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.from[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-14.fields.from[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.from[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.from[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.from[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-14.fields.from[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-14.fields.from[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.from[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.from[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.from[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.from[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-14.fields.from[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-14.fields.from[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.from[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-14.fields.from[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.from[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.from[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-14.fields.from[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.from[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.from[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.from[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-14.fields.from[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-14.fields.from[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-14.fields.from[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-14.fields.from[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.from[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-14.fields.from[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-14.fields.from[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.from[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-14.fields.from[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.from[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.from[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.from[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-14.fields.from[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-14.fields.from[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.from[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.to
Type: list of object; optional
Sourced to declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-14.fields.to[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.to[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.to[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-14.fields.to[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.to[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-14.fields.to[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.to[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.to[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.to[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-14.fields.to[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-14.fields.to[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-14.fields.to[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-14.fields.to[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.to[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-14.fields.to[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-14.fields.to[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.to[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-14.fields.to[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.to[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.to[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.to[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-14.fields.to[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-14.fields.to[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.to[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.to[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.to[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.to[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-14.fields.to[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.to[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.to[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.to[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.to[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-14.fields.to[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-14.fields.to[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-14.fields.to[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-14.fields.to[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.to[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-14.fields.to[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-14.fields.to[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.to[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-14.fields.to[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.to[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.to[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.to[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-14.fields.to[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-14.fields.to[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.to[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.to[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.to[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.to[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-14.fields.to[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-14.fields.to[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.to[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-14.fields.to[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.to[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.to[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-14.fields.to[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.to[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.to[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.to[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-14.fields.to[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-14.fields.to[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-14.fields.to[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-14.fields.to[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.to[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-14.fields.to[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-14.fields.to[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.to[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-14.fields.to[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.to[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.to[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.to[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-14.fields.to[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-14.fields.to[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.to[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.location
Type: list of object; optional
Sourced location declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-14.fields.location[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.location[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.location[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-14.fields.location[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.location[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-14.fields.location[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.location[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.location[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.location[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-14.fields.location[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-14.fields.location[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-14.fields.location[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-14.fields.location[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.location[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-14.fields.location[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-14.fields.location[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.location[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-14.fields.location[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.location[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.location[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.location[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-14.fields.location[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-14.fields.location[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.location[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.location[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.location[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.location[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-14.fields.location[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.location[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.location[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.location[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.location[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-14.fields.location[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-14.fields.location[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-14.fields.location[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-14.fields.location[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.location[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-14.fields.location[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-14.fields.location[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.location[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-14.fields.location[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.location[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.location[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.location[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-14.fields.location[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-14.fields.location[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.location[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.location[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.location[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.location[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-14.fields.location[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-14.fields.location[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.location[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-14.fields.location[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.location[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.location[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-14.fields.location[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.location[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.location[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.location[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-14.fields.location[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-14.fields.location[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-14.fields.location[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-14.fields.location[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.location[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-14.fields.location[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-14.fields.location[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.location[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-14.fields.location[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.location[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.location[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.location[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-14.fields.location[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-14.fields.location[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.location[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.reference
Type: list of object; optional
Sourced reference declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-14.fields.reference[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.reference[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.reference[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-14.fields.reference[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.reference[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-14.fields.reference[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.reference[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.reference[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.reference[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-14.fields.reference[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-14.fields.reference[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-14.fields.reference[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-14.fields.reference[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.reference[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-14.fields.reference[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-14.fields.reference[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.reference[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-14.fields.reference[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.reference[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.reference[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.reference[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-14.fields.reference[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-14.fields.reference[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.reference[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.reference[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.reference[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.reference[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-14.fields.reference[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.reference[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.reference[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.reference[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.reference[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-14.fields.reference[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-14.fields.reference[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-14.fields.reference[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-14.fields.reference[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.reference[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-14.fields.reference[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-14.fields.reference[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.reference[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-14.fields.reference[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.reference[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.reference[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.reference[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-14.fields.reference[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-14.fields.reference[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.reference[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.reference[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.reference[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.reference[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-14.fields.reference[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-14.fields.reference[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.reference[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-14.fields.reference[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.reference[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.reference[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-14.fields.reference[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.reference[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.reference[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.reference[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-14.fields.reference[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-14.fields.reference[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-14.fields.reference[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-14.fields.reference[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.reference[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-14.fields.reference[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-14.fields.reference[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.reference[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-14.fields.reference[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.reference[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.reference[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.reference[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-14.fields.reference[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-14.fields.reference[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.reference[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.supportRefs
Type: list of object; optional
Sourced support refs declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-14.fields.supportRefs[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.supportRefs[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.supportRefs[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-14.fields.supportRefs[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.supportRefs[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-14.fields.supportRefs[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-14.fields.supportRefs[].content/option-1.value[]
Type: string
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.supportRefs[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.supportRefs[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.supportRefs[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-14.fields.supportRefs[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-14.fields.supportRefs[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-14.fields.supportRefs[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-14.fields.supportRefs[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.supportRefs[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-14.fields.supportRefs[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-14.fields.supportRefs[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.supportRefs[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-14.fields.supportRefs[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.supportRefs[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.supportRefs[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.supportRefs[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-14.fields.supportRefs[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-14.fields.supportRefs[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.supportRefs[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.supportRefs[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.supportRefs[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.supportRefs[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-14.fields.supportRefs[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-14.fields.supportRefs[].content/option-2.value[]
Type: string
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.supportRefs[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.supportRefs[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.supportRefs[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.supportRefs[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-14.fields.supportRefs[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-14.fields.supportRefs[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-14.fields.supportRefs[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-14.fields.supportRefs[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.supportRefs[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-14.fields.supportRefs[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-14.fields.supportRefs[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.supportRefs[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-14.fields.supportRefs[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.supportRefs[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.supportRefs[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.supportRefs[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-14.fields.supportRefs[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-14.fields.supportRefs[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.supportRefs[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.supportRefs[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.supportRefs[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.supportRefs[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-14.fields.supportRefs[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-14.fields.supportRefs[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.supportRefs[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-14.fields.supportRefs[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.supportRefs[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.supportRefs[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-14.fields.supportRefs[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.supportRefs[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.supportRefs[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.supportRefs[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-14.fields.supportRefs[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-14.fields.supportRefs[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-14.fields.supportRefs[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-14.fields.supportRefs[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.supportRefs[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-14.fields.supportRefs[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-14.fields.supportRefs[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.supportRefs[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-14.fields.supportRefs[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.supportRefs[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.supportRefs[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.supportRefs[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-14.fields.supportRefs[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-14.fields.supportRefs[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.supportRefs[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.notes
Type: list of object; optional
Sourced notes declarations. Missingness and conflicting statements are retained; no physical verification is implied.
minItems: 1
### entities[]/option-14.fields.notes[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.notes[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.notes[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-14.fields.notes[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.notes[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-14.fields.notes[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.notes[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.notes[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.notes[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-14.fields.notes[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-14.fields.notes[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-14.fields.notes[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-14.fields.notes[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.notes[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-14.fields.notes[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-14.fields.notes[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.notes[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-14.fields.notes[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.notes[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.notes[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.notes[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-14.fields.notes[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-14.fields.notes[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.notes[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.notes[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.notes[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.notes[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-14.fields.notes[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.notes[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.notes[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.notes[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.notes[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-14.fields.notes[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-14.fields.notes[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-14.fields.notes[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-14.fields.notes[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.notes[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-14.fields.notes[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-14.fields.notes[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.notes[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-14.fields.notes[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.notes[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.notes[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.notes[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-14.fields.notes[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-14.fields.notes[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.notes[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.notes[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.notes[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.notes[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-14.fields.notes[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-14.fields.notes[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.notes[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-14.fields.notes[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.notes[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.notes[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-14.fields.notes[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.notes[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.notes[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.fields.notes[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-14.fields.notes[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-14.fields.notes[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-14.fields.notes[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-14.fields.notes[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.notes[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-14.fields.notes[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-14.fields.notes[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.notes[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-14.fields.notes[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.notes[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-14.fields.notes[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.fields.notes[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-14.fields.notes[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-14.fields.notes[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.fields.notes[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-14.transferRef
Type: object; optional
Optional identity of the existing selected transfer being described; not a second independent custody chain.
Extra fields: Not allowed in this object
### entities[]/option-14.transferRef.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-14.transferRef.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.transferRef.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:physical-sample-selection:0.1.0"
### entities[]/option-14.transferRef.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-14.transferRef.sampleId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.transferRef.transferId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.materialId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.predecessor
Type: choice; required in containing object
An action on this same specimen, a declared beginning, or an explicit unknown gap. Array order does not establish chronology.
Choose: Exactly one of the alternatives below
### entities[]/option-14.predecessor/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.predecessor/option-1.kind
Type: string; required in containing object
const: "action"
### entities[]/option-14.predecessor/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-14.predecessor/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.predecessor/option-2.kind
Type: string; required in containing object
const: "start"
### entities[]/option-14.predecessor/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-14.predecessor/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-14.predecessor/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.kind
Type: string; required in containing object
const: "laboratory_analysis"
### entities[]/option-15.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.label
Type: list of object; optional
Sourced label declarations, retaining missingness and disagreements without certifying laboratory performance.
minItems: 1
### entities[]/option-15.fields.label[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.label[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.label[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-15.fields.label[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.label[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-15.fields.label[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.label[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.label[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.label[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-15.fields.label[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-15.fields.label[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-15.fields.label[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.label[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.label[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-15.fields.label[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-15.fields.label[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.label[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-15.fields.label[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.label[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.label[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.label[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-15.fields.label[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-15.fields.label[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.label[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.label[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.label[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.label[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-15.fields.label[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.label[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.label[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.label[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.label[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-15.fields.label[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-15.fields.label[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-15.fields.label[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.label[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.label[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-15.fields.label[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-15.fields.label[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.label[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-15.fields.label[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.label[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.label[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.label[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-15.fields.label[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-15.fields.label[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.label[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.label[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.label[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.label[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-15.fields.label[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-15.fields.label[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.label[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-15.fields.label[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.label[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.label[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-15.fields.label[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.label[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.label[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.label[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-15.fields.label[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-15.fields.label[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-15.fields.label[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.label[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.label[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-15.fields.label[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-15.fields.label[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.label[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-15.fields.label[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.label[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.label[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.label[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-15.fields.label[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-15.fields.label[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.label[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.method
Type: list of object; optional
Sourced method declarations, retaining missingness and disagreements without certifying laboratory performance.
minItems: 1
### entities[]/option-15.fields.method[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.method[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.method[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-15.fields.method[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.method[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-15.fields.method[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.method[].content/option-1.value.methodRef
Type: string; required in containing object
pattern: "^method:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.method[].content/option-1.value.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.method[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.method[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.method[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-15.fields.method[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-15.fields.method[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-15.fields.method[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.method[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.method[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-15.fields.method[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-15.fields.method[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.method[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-15.fields.method[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.method[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.method[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.method[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-15.fields.method[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-15.fields.method[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.method[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.method[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.method[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.method[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-15.fields.method[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.method[].content/option-2.value.methodRef
Type: string; required in containing object
pattern: "^method:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.method[].content/option-2.value.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.method[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.method[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.method[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.method[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-15.fields.method[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-15.fields.method[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-15.fields.method[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.method[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.method[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-15.fields.method[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-15.fields.method[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.method[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-15.fields.method[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.method[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.method[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.method[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-15.fields.method[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-15.fields.method[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.method[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.method[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.method[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.method[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-15.fields.method[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-15.fields.method[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.method[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-15.fields.method[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.method[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.method[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-15.fields.method[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.method[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.method[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.method[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-15.fields.method[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-15.fields.method[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-15.fields.method[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.method[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.method[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-15.fields.method[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-15.fields.method[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.method[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-15.fields.method[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.method[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.method[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.method[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-15.fields.method[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-15.fields.method[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.method[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.laboratory
Type: list of object; optional
Sourced laboratory declarations, retaining missingness and disagreements without certifying laboratory performance.
minItems: 1
### entities[]/option-15.fields.laboratory[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.laboratory[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.laboratory[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-15.fields.laboratory[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.laboratory[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-15.fields.laboratory[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.laboratory[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.laboratory[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.laboratory[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-15.fields.laboratory[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-15.fields.laboratory[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-15.fields.laboratory[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.laboratory[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.laboratory[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-15.fields.laboratory[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-15.fields.laboratory[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.laboratory[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-15.fields.laboratory[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.laboratory[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.laboratory[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.laboratory[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-15.fields.laboratory[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-15.fields.laboratory[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.laboratory[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.laboratory[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.laboratory[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.laboratory[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-15.fields.laboratory[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.laboratory[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.laboratory[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.laboratory[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.laboratory[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-15.fields.laboratory[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-15.fields.laboratory[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-15.fields.laboratory[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.laboratory[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.laboratory[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-15.fields.laboratory[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-15.fields.laboratory[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.laboratory[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-15.fields.laboratory[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.laboratory[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.laboratory[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.laboratory[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-15.fields.laboratory[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-15.fields.laboratory[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.laboratory[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.laboratory[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.laboratory[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.laboratory[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-15.fields.laboratory[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-15.fields.laboratory[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.laboratory[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-15.fields.laboratory[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.laboratory[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.laboratory[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-15.fields.laboratory[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.laboratory[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.laboratory[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.laboratory[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-15.fields.laboratory[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-15.fields.laboratory[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-15.fields.laboratory[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.laboratory[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.laboratory[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-15.fields.laboratory[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-15.fields.laboratory[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.laboratory[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-15.fields.laboratory[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.laboratory[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.laboratory[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.laboratory[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-15.fields.laboratory[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-15.fields.laboratory[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.laboratory[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.operator
Type: list of object; optional
Sourced operator declarations, retaining missingness and disagreements without certifying laboratory performance.
minItems: 1
### entities[]/option-15.fields.operator[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.operator[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.operator[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-15.fields.operator[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.operator[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-15.fields.operator[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.operator[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.operator[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.operator[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-15.fields.operator[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-15.fields.operator[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-15.fields.operator[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.operator[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.operator[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-15.fields.operator[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-15.fields.operator[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.operator[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-15.fields.operator[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.operator[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.operator[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.operator[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-15.fields.operator[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-15.fields.operator[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.operator[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.operator[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.operator[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.operator[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-15.fields.operator[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.operator[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.operator[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.operator[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.operator[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-15.fields.operator[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-15.fields.operator[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-15.fields.operator[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.operator[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.operator[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-15.fields.operator[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-15.fields.operator[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.operator[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-15.fields.operator[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.operator[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.operator[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.operator[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-15.fields.operator[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-15.fields.operator[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.operator[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.operator[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.operator[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.operator[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-15.fields.operator[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-15.fields.operator[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.operator[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-15.fields.operator[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.operator[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.operator[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-15.fields.operator[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.operator[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.operator[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.operator[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-15.fields.operator[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-15.fields.operator[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-15.fields.operator[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.operator[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.operator[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-15.fields.operator[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-15.fields.operator[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.operator[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-15.fields.operator[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.operator[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.operator[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.operator[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-15.fields.operator[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-15.fields.operator[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.operator[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.performedAt
Type: list of object; optional
Sourced performedAt declarations, retaining missingness and disagreements without certifying laboratory performance.
minItems: 1
### entities[]/option-15.fields.performedAt[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.performedAt[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-15.fields.performedAt[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-15.fields.performedAt[].content/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-15.fields.performedAt[].content/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-15.fields.performedAt[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.performedAt[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-15.fields.performedAt[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-15.fields.performedAt[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.performedAt[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-15.fields.performedAt[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-15.fields.performedAt[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-15.fields.performedAt[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.performedAt[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.performedAt[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-15.fields.performedAt[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-15.fields.performedAt[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.performedAt[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.performedAt[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.performedAt[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-15.fields.performedAt[].content/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-15.fields.performedAt[].content/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-15.fields.performedAt[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.performedAt[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.performedAt[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-15.fields.performedAt[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-15.fields.performedAt[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.performedAt[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-15.fields.performedAt[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-15.fields.performedAt[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-15.fields.performedAt[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.performedAt[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.performedAt[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-15.fields.performedAt[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-15.fields.performedAt[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.performedAt[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.performedAt[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.performedAt[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-15.fields.performedAt[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-15.fields.performedAt[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-15.fields.performedAt[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.performedAt[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-15.fields.performedAt[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.performedAt[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.performedAt[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-15.fields.performedAt[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-15.fields.performedAt[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.performedAt[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-15.fields.performedAt[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-15.fields.performedAt[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-15.fields.performedAt[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.performedAt[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.performedAt[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.performedAt[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-15.fields.performedAt[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-15.fields.performedAt[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.performedAt[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.protocol
Type: list of object; optional
Sourced protocol declarations, retaining missingness and disagreements without certifying laboratory performance.
minItems: 1
### entities[]/option-15.fields.protocol[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.protocol[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.protocol[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-15.fields.protocol[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.protocol[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-15.fields.protocol[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.protocol[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.protocol[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.protocol[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-15.fields.protocol[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-15.fields.protocol[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-15.fields.protocol[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.protocol[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.protocol[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-15.fields.protocol[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-15.fields.protocol[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.protocol[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-15.fields.protocol[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.protocol[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.protocol[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.protocol[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-15.fields.protocol[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-15.fields.protocol[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.protocol[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.protocol[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.protocol[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.protocol[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-15.fields.protocol[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.protocol[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.protocol[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.protocol[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.protocol[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-15.fields.protocol[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-15.fields.protocol[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-15.fields.protocol[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.protocol[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.protocol[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-15.fields.protocol[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-15.fields.protocol[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.protocol[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-15.fields.protocol[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.protocol[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.protocol[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.protocol[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-15.fields.protocol[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-15.fields.protocol[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.protocol[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.protocol[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.protocol[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.protocol[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-15.fields.protocol[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-15.fields.protocol[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.protocol[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-15.fields.protocol[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.protocol[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.protocol[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-15.fields.protocol[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.protocol[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.protocol[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.protocol[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-15.fields.protocol[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-15.fields.protocol[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-15.fields.protocol[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.protocol[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.protocol[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-15.fields.protocol[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-15.fields.protocol[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.protocol[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-15.fields.protocol[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.protocol[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.protocol[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.protocol[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-15.fields.protocol[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-15.fields.protocol[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.protocol[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.preparationDescription
Type: list of object; optional
Sourced preparationDescription declarations, retaining missingness and disagreements without certifying laboratory performance.
minItems: 1
### entities[]/option-15.fields.preparationDescription[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.preparationDescription[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.preparationDescription[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-15.fields.preparationDescription[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.preparationDescription[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-15.fields.preparationDescription[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.preparationDescription[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.preparationDescription[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.preparationDescription[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-15.fields.preparationDescription[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-15.fields.preparationDescription[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-15.fields.preparationDescription[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.preparationDescription[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.preparationDescription[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-15.fields.preparationDescription[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-15.fields.preparationDescription[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.preparationDescription[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-15.fields.preparationDescription[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.preparationDescription[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.preparationDescription[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.preparationDescription[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-15.fields.preparationDescription[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-15.fields.preparationDescription[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.preparationDescription[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.preparationDescription[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.preparationDescription[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.preparationDescription[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-15.fields.preparationDescription[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.preparationDescription[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.preparationDescription[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.preparationDescription[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.preparationDescription[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-15.fields.preparationDescription[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-15.fields.preparationDescription[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-15.fields.preparationDescription[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.preparationDescription[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.preparationDescription[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-15.fields.preparationDescription[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-15.fields.preparationDescription[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.preparationDescription[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-15.fields.preparationDescription[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.preparationDescription[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.preparationDescription[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.preparationDescription[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-15.fields.preparationDescription[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-15.fields.preparationDescription[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.preparationDescription[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.preparationDescription[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.preparationDescription[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.preparationDescription[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-15.fields.preparationDescription[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-15.fields.preparationDescription[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.preparationDescription[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-15.fields.preparationDescription[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.preparationDescription[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.preparationDescription[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-15.fields.preparationDescription[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.preparationDescription[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.preparationDescription[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.preparationDescription[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-15.fields.preparationDescription[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-15.fields.preparationDescription[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-15.fields.preparationDescription[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.preparationDescription[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.preparationDescription[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-15.fields.preparationDescription[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-15.fields.preparationDescription[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.preparationDescription[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-15.fields.preparationDescription[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.preparationDescription[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.preparationDescription[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.preparationDescription[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-15.fields.preparationDescription[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-15.fields.preparationDescription[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.preparationDescription[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.reportArtifacts
Type: list of object; optional
Sourced reportArtifacts declarations, retaining missingness and disagreements without certifying laboratory performance.
minItems: 1
### entities[]/option-15.fields.reportArtifacts[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.reportArtifacts[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.reportArtifacts[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-15.fields.reportArtifacts[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.reportArtifacts[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-15.fields.reportArtifacts[].content/option-1.value
Type: list of object; required in containing object
minItems: 1
### entities[]/option-15.fields.reportArtifacts[].content/option-1.value[]
Type: object
One exact artifact in the scoped observation inventory. A URL, title or legacy hash cannot substitute for this identity.
Extra fields: Not allowed in this object
### entities[]/option-15.fields.reportArtifacts[].content/option-1.value[].sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.reportArtifacts[].content/option-1.value[].digest
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.reportArtifacts[].content/option-1.value[].digest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-15.fields.reportArtifacts[].content/option-1.value[].digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-15.fields.reportArtifacts[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.reportArtifacts[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.reportArtifacts[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-15.fields.reportArtifacts[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-15.fields.reportArtifacts[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-15.fields.reportArtifacts[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.reportArtifacts[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.reportArtifacts[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-15.fields.reportArtifacts[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-15.fields.reportArtifacts[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.reportArtifacts[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-15.fields.reportArtifacts[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.reportArtifacts[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.reportArtifacts[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.reportArtifacts[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-15.fields.reportArtifacts[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-15.fields.reportArtifacts[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.reportArtifacts[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.reportArtifacts[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.reportArtifacts[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.reportArtifacts[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-15.fields.reportArtifacts[].content/option-2.value
Type: list of object; required in containing object
minItems: 1
### entities[]/option-15.fields.reportArtifacts[].content/option-2.value[]
Type: object
One exact artifact in the scoped observation inventory. A URL, title or legacy hash cannot substitute for this identity.
Extra fields: Not allowed in this object
### entities[]/option-15.fields.reportArtifacts[].content/option-2.value[].sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.reportArtifacts[].content/option-2.value[].digest
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.reportArtifacts[].content/option-2.value[].digest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-15.fields.reportArtifacts[].content/option-2.value[].digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-15.fields.reportArtifacts[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.reportArtifacts[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.reportArtifacts[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.reportArtifacts[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-15.fields.reportArtifacts[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-15.fields.reportArtifacts[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-15.fields.reportArtifacts[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.reportArtifacts[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.reportArtifacts[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-15.fields.reportArtifacts[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-15.fields.reportArtifacts[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.reportArtifacts[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-15.fields.reportArtifacts[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.reportArtifacts[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.reportArtifacts[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.reportArtifacts[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-15.fields.reportArtifacts[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-15.fields.reportArtifacts[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.reportArtifacts[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.reportArtifacts[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.reportArtifacts[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.reportArtifacts[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-15.fields.reportArtifacts[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-15.fields.reportArtifacts[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.reportArtifacts[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-15.fields.reportArtifacts[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.reportArtifacts[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.reportArtifacts[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-15.fields.reportArtifacts[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.reportArtifacts[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.reportArtifacts[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.reportArtifacts[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-15.fields.reportArtifacts[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-15.fields.reportArtifacts[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-15.fields.reportArtifacts[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.reportArtifacts[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.reportArtifacts[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-15.fields.reportArtifacts[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-15.fields.reportArtifacts[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.reportArtifacts[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-15.fields.reportArtifacts[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.reportArtifacts[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.reportArtifacts[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.reportArtifacts[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-15.fields.reportArtifacts[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-15.fields.reportArtifacts[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.reportArtifacts[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.notes
Type: list of object; optional
Sourced notes declarations, retaining missingness and disagreements without certifying laboratory performance.
minItems: 1
### entities[]/option-15.fields.notes[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.notes[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.notes[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-15.fields.notes[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.notes[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-15.fields.notes[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.notes[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.notes[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.notes[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-15.fields.notes[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-15.fields.notes[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-15.fields.notes[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.notes[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.notes[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-15.fields.notes[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-15.fields.notes[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.notes[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-15.fields.notes[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.notes[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.notes[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.notes[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-15.fields.notes[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-15.fields.notes[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.notes[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.notes[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.notes[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.notes[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-15.fields.notes[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.notes[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.notes[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.notes[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.notes[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-15.fields.notes[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-15.fields.notes[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-15.fields.notes[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.notes[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.notes[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-15.fields.notes[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-15.fields.notes[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.notes[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-15.fields.notes[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.notes[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.notes[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.notes[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-15.fields.notes[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-15.fields.notes[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.notes[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.notes[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.notes[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.notes[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-15.fields.notes[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-15.fields.notes[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.notes[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-15.fields.notes[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.notes[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.notes[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-15.fields.notes[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.notes[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.notes[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.fields.notes[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-15.fields.notes[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-15.fields.notes[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-15.fields.notes[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-15.fields.notes[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.notes[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-15.fields.notes[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-15.fields.notes[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.notes[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-15.fields.notes[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.notes[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-15.fields.notes[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-15.fields.notes[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-15.fields.notes[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-15.fields.notes[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.fields.notes[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-15.inputMaterialIds
Type: list of string; required in containing object
minItems: 1
### entities[]/option-15.inputMaterialIds[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.preparationIds
Type: list of string; optional
minItems: 1
### entities[]/option-15.preparationIds[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-15.resultIds
Type: list of string; required in containing object
Explicit result identities; an empty list does not invent a result from reported analytical work.
### entities[]/option-15.resultIds[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-16
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.kind
Type: string; required in containing object
const: "laboratory_result"
### entities[]/option-16.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-16.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.analyte
Type: list of object; optional
Sourced analyte declarations, retaining missingness and disagreements without certifying laboratory performance.
minItems: 1
### entities[]/option-16.fields.analyte[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.analyte[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-16.fields.analyte[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-16.fields.analyte[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.analyte[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-16.fields.analyte[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.analyte[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.analyte[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-16.fields.analyte[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-16.fields.analyte[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-16.fields.analyte[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-16.fields.analyte[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-16.fields.analyte[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.analyte[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-16.fields.analyte[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-16.fields.analyte[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.analyte[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-16.fields.analyte[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-16.fields.analyte[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-16.fields.analyte[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.analyte[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-16.fields.analyte[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-16.fields.analyte[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.analyte[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.analyte[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.analyte[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.analyte[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-16.fields.analyte[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.analyte[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.analyte[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.analyte[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-16.fields.analyte[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-16.fields.analyte[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-16.fields.analyte[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-16.fields.analyte[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-16.fields.analyte[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.analyte[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-16.fields.analyte[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-16.fields.analyte[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.analyte[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-16.fields.analyte[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-16.fields.analyte[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-16.fields.analyte[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.analyte[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-16.fields.analyte[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-16.fields.analyte[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.analyte[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.analyte[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.analyte[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.analyte[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-16.fields.analyte[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-16.fields.analyte[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.analyte[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-16.fields.analyte[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.analyte[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.analyte[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-16.fields.analyte[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.analyte[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.analyte[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-16.fields.analyte[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-16.fields.analyte[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-16.fields.analyte[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-16.fields.analyte[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-16.fields.analyte[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.analyte[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-16.fields.analyte[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-16.fields.analyte[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.analyte[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-16.fields.analyte[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-16.fields.analyte[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-16.fields.analyte[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.analyte[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-16.fields.analyte[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-16.fields.analyte[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.analyte[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.result
Type: list of object; optional
Sourced result declarations, retaining missingness and disagreements without certifying laboratory performance.
minItems: 1
### entities[]/option-16.fields.result[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-16.fields.result[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-16.fields.result[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-16.fields.result[].content/option-1.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-16.fields.result[].content/option-1.value/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-1.value/option-1.kind
Type: string; required in containing object
const: "quantitative"
### entities[]/option-16.fields.result[].content/option-1.value/option-1.measurementId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-16.fields.result[].content/option-1.value/option-1.limit
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-16.fields.result[].content/option-1.value/option-1.limit/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-1.value/option-1.limit/option-1.state
Type: string; required in containing object
const: "reported"
### entities[]/option-16.fields.result[].content/option-1.value/option-1.limit/option-1.value
Type: object; required in containing object
A source-declared analytical threshold with units and stated basis, not a measured zero or uncertainty estimate.
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-1.value/option-1.limit/option-1.value.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-16.fields.result[].content/option-1.value/option-1.limit/option-1.value.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.result[].content/option-1.value/option-1.limit/option-1.value.kind
Type: string; required in containing object
enum: ["detection","quantification"]
### entities[]/option-16.fields.result[].content/option-1.value/option-1.limit/option-1.value.basis
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.result[].content/option-1.value/option-1.limit/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-1.value/option-1.limit/option-2.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-16.fields.result[].content/option-1.value/option-1.limit/option-2.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.result[].content/option-1.value/option-1.limit/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-1.value/option-1.limit/option-3.state
Type: string; required in containing object
const: "not_applicable"
### entities[]/option-16.fields.result[].content/option-1.value/option-1.limit/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.result[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "below_limit"
### entities[]/option-16.fields.result[].content/option-1.value/option-2.limit
Type: object; required in containing object
A source-declared analytical threshold with units and stated basis, not a measured zero or uncertainty estimate.
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-1.value/option-2.limit.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-16.fields.result[].content/option-1.value/option-2.limit.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.result[].content/option-1.value/option-2.limit.kind
Type: string; required in containing object
enum: ["detection","quantification"]
### entities[]/option-16.fields.result[].content/option-1.value/option-2.limit.basis
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.result[].content/option-1.value/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-1.value/option-3.kind
Type: string; required in containing object
const: "qualitative"
### entities[]/option-16.fields.result[].content/option-1.value/option-3.text
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.result[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-16.fields.result[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-16.fields.result[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-16.fields.result[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-16.fields.result[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-16.fields.result[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-16.fields.result[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-16.fields.result[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-16.fields.result[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-16.fields.result[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-16.fields.result[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-16.fields.result[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.result[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.result[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.result[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-16.fields.result[].content/option-2.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-16.fields.result[].content/option-2.value/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-2.value/option-1.kind
Type: string; required in containing object
const: "quantitative"
### entities[]/option-16.fields.result[].content/option-2.value/option-1.measurementId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-16.fields.result[].content/option-2.value/option-1.limit
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-16.fields.result[].content/option-2.value/option-1.limit/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-2.value/option-1.limit/option-1.state
Type: string; required in containing object
const: "reported"
### entities[]/option-16.fields.result[].content/option-2.value/option-1.limit/option-1.value
Type: object; required in containing object
A source-declared analytical threshold with units and stated basis, not a measured zero or uncertainty estimate.
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-2.value/option-1.limit/option-1.value.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-16.fields.result[].content/option-2.value/option-1.limit/option-1.value.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.result[].content/option-2.value/option-1.limit/option-1.value.kind
Type: string; required in containing object
enum: ["detection","quantification"]
### entities[]/option-16.fields.result[].content/option-2.value/option-1.limit/option-1.value.basis
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.result[].content/option-2.value/option-1.limit/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-2.value/option-1.limit/option-2.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-16.fields.result[].content/option-2.value/option-1.limit/option-2.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.result[].content/option-2.value/option-1.limit/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-2.value/option-1.limit/option-3.state
Type: string; required in containing object
const: "not_applicable"
### entities[]/option-16.fields.result[].content/option-2.value/option-1.limit/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.result[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "below_limit"
### entities[]/option-16.fields.result[].content/option-2.value/option-2.limit
Type: object; required in containing object
A source-declared analytical threshold with units and stated basis, not a measured zero or uncertainty estimate.
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-2.value/option-2.limit.magnitude
Type: number; required in containing object
minimum: 0
### entities[]/option-16.fields.result[].content/option-2.value/option-2.limit.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.result[].content/option-2.value/option-2.limit.kind
Type: string; required in containing object
enum: ["detection","quantification"]
### entities[]/option-16.fields.result[].content/option-2.value/option-2.limit.basis
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.result[].content/option-2.value/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-2.value/option-3.kind
Type: string; required in containing object
const: "qualitative"
### entities[]/option-16.fields.result[].content/option-2.value/option-3.text
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.result[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.result[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-16.fields.result[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-16.fields.result[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-16.fields.result[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-16.fields.result[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-16.fields.result[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-16.fields.result[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-16.fields.result[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-16.fields.result[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-16.fields.result[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-16.fields.result[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-16.fields.result[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.result[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.result[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.result[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-16.fields.result[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-16.fields.result[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-16.fields.result[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.result[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-16.fields.result[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.result[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-16.fields.result[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-16.fields.result[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-16.fields.result[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-16.fields.result[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-16.fields.result[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-16.fields.result[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-16.fields.result[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-16.fields.result[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-16.fields.result[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.result[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-16.fields.result[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-16.fields.result[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.result[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.reportArtifacts
Type: list of object; optional
Sourced reportArtifacts declarations, retaining missingness and disagreements without certifying laboratory performance.
minItems: 1
### entities[]/option-16.fields.reportArtifacts[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.reportArtifacts[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-16.fields.reportArtifacts[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-16.fields.reportArtifacts[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.reportArtifacts[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-16.fields.reportArtifacts[].content/option-1.value
Type: list of object; required in containing object
minItems: 1
### entities[]/option-16.fields.reportArtifacts[].content/option-1.value[]
Type: object
One exact artifact in the scoped observation inventory. A URL, title or legacy hash cannot substitute for this identity.
Extra fields: Not allowed in this object
### entities[]/option-16.fields.reportArtifacts[].content/option-1.value[].sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-16.fields.reportArtifacts[].content/option-1.value[].digest
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.reportArtifacts[].content/option-1.value[].digest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-16.fields.reportArtifacts[].content/option-1.value[].digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-16.fields.reportArtifacts[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.reportArtifacts[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-16.fields.reportArtifacts[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-16.fields.reportArtifacts[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-16.fields.reportArtifacts[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-16.fields.reportArtifacts[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-16.fields.reportArtifacts[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.reportArtifacts[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-16.fields.reportArtifacts[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-16.fields.reportArtifacts[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.reportArtifacts[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-16.fields.reportArtifacts[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-16.fields.reportArtifacts[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-16.fields.reportArtifacts[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.reportArtifacts[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-16.fields.reportArtifacts[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-16.fields.reportArtifacts[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.reportArtifacts[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.reportArtifacts[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.reportArtifacts[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.reportArtifacts[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-16.fields.reportArtifacts[].content/option-2.value
Type: list of object; required in containing object
minItems: 1
### entities[]/option-16.fields.reportArtifacts[].content/option-2.value[]
Type: object
One exact artifact in the scoped observation inventory. A URL, title or legacy hash cannot substitute for this identity.
Extra fields: Not allowed in this object
### entities[]/option-16.fields.reportArtifacts[].content/option-2.value[].sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-16.fields.reportArtifacts[].content/option-2.value[].digest
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.reportArtifacts[].content/option-2.value[].digest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-16.fields.reportArtifacts[].content/option-2.value[].digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-16.fields.reportArtifacts[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.reportArtifacts[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.reportArtifacts[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-16.fields.reportArtifacts[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-16.fields.reportArtifacts[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-16.fields.reportArtifacts[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-16.fields.reportArtifacts[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-16.fields.reportArtifacts[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.reportArtifacts[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-16.fields.reportArtifacts[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-16.fields.reportArtifacts[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.reportArtifacts[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-16.fields.reportArtifacts[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-16.fields.reportArtifacts[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-16.fields.reportArtifacts[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.reportArtifacts[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-16.fields.reportArtifacts[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-16.fields.reportArtifacts[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.reportArtifacts[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.reportArtifacts[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.reportArtifacts[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.reportArtifacts[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-16.fields.reportArtifacts[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-16.fields.reportArtifacts[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.reportArtifacts[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-16.fields.reportArtifacts[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.reportArtifacts[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.reportArtifacts[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-16.fields.reportArtifacts[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.reportArtifacts[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.reportArtifacts[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-16.fields.reportArtifacts[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-16.fields.reportArtifacts[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-16.fields.reportArtifacts[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-16.fields.reportArtifacts[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-16.fields.reportArtifacts[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.reportArtifacts[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-16.fields.reportArtifacts[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-16.fields.reportArtifacts[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.reportArtifacts[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-16.fields.reportArtifacts[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-16.fields.reportArtifacts[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-16.fields.reportArtifacts[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.reportArtifacts[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-16.fields.reportArtifacts[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-16.fields.reportArtifacts[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.reportArtifacts[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.notes
Type: list of object; optional
Sourced notes declarations, retaining missingness and disagreements without certifying laboratory performance.
minItems: 1
### entities[]/option-16.fields.notes[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.notes[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-16.fields.notes[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-16.fields.notes[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.notes[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-16.fields.notes[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.notes[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.notes[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-16.fields.notes[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-16.fields.notes[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-16.fields.notes[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-16.fields.notes[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-16.fields.notes[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.notes[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-16.fields.notes[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-16.fields.notes[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.notes[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-16.fields.notes[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-16.fields.notes[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-16.fields.notes[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.notes[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-16.fields.notes[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-16.fields.notes[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.notes[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.notes[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.notes[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.notes[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-16.fields.notes[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.notes[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.notes[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.notes[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-16.fields.notes[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-16.fields.notes[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-16.fields.notes[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-16.fields.notes[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-16.fields.notes[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.notes[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-16.fields.notes[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-16.fields.notes[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.notes[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-16.fields.notes[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-16.fields.notes[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-16.fields.notes[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.notes[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-16.fields.notes[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-16.fields.notes[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.notes[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.notes[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.notes[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.notes[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-16.fields.notes[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-16.fields.notes[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.notes[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-16.fields.notes[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.notes[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.notes[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-16.fields.notes[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.notes[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.notes[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-16.fields.notes[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-16.fields.notes[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-16.fields.notes[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-16.fields.notes[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-16.fields.notes[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.notes[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-16.fields.notes[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-16.fields.notes[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.notes[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-16.fields.notes[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-16.fields.notes[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-16.fields.notes[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-16.fields.notes[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-16.fields.notes[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-16.fields.notes[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.fields.notes[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-16.analysisId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-16.materialId
Type: string; required in containing object
The exact analyzed specimen. Results do not propagate to parents or sibling aliquots.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
## Attributable review
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
Source declarations and reviewer assessments retain their exact subjects and inputs.
Schema: urn:disclosureos:experimental:claim-history:0.5.0
Export: @disclosureos/records/experimental/v2/claims/schema/0.5.0
### kind
Type: string; required in containing object
const: "claim_history"
### schemaVersion
Type: string; required in containing object
const: "0.5.0"
### id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### contextRefs
Type: list of object; required in containing object
### contextRefs[]
Type: object
Extra fields: Not allowed in this object
### contextRefs[].documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### contextRefs[].schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### contextRefs[].sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entityRefs
Type: list of object; required in containing object
### entityRefs[]
Type: object
Extra fields: Not allowed in this object
### entityRefs[].documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entityRefs[].schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:research-entities:0.4.0"
### entityRefs[].sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.kind
Type: string; required in containing object
const: "observation"
### observation.schemaVersion
Type: string; required in containing object
const: "0.1.0"
### observation.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.status
Type: string; required in containing object
enum: ["draft","published","withdrawn"]
### observation.createdAt
Type: string; required in containing object
### observation.createdAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.createdAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.createdAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.createdAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.updatedAt
Type: string; required in containing object
### observation.updatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.updatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.updatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.updatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.summary
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.eventTime
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.eventTime/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.state
Type: string; required in containing object
const: "known"
### observation.eventTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### observation.eventTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### observation.eventTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### observation.eventTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.eventTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### observation.eventTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.eventTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### observation.eventTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### observation.eventTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.eventTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.eventTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### observation.eventTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.eventTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### observation.eventTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.eventTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### observation.eventTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.eventTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### observation.eventTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.eventTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### observation.eventTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### observation.eventTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.eventTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.eventTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### observation.eventTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.eventTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.eventTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### observation.eventTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.eventTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### observation.eventTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.eventTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### observation.eventTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### observation.eventTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.eventTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.eventTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### observation.eventTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.eventTime/option-1.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-1.sourceRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-1.selection
Type: object; optional
Extra fields: Not allowed in this object
### observation.eventTime/option-1.selection.assertionRef
Type: string; required in containing object
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-1.selection.consideredAssertionRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-1.selection.consideredAssertionRefs[]
Type: string
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-1.selection.methodRef
Type: string; required in containing object
pattern: "^method:[^\\s:]+(?![\\s\\S])"
### observation.eventTime/option-1.selection.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-1.selection.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-1.selection.evaluatedAt
Type: string; required in containing object
### observation.eventTime/option-1.selection.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-1.selection.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.selection.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-1.selection.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-1.selection.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-1.uncertainty
Type: choice; optional
Choose: Exactly one of the alternatives below
### observation.eventTime/option-1.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.eventTime/option-1.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.eventTime/option-1.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.eventTime/option-1.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.eventTime/option-1.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-1.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-1.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-1.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.eventTime/option-1.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.eventTime/option-1.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-1.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-1.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-1.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.eventTime/option-1.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.eventTime/option-1.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.eventTime/option-1.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.eventTime/option-1.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-1.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-1.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.state
Type: string; required in containing object
const: "approximate"
### observation.eventTime/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### observation.eventTime/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### observation.eventTime/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### observation.eventTime/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.eventTime/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### observation.eventTime/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.eventTime/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### observation.eventTime/option-2.value/option-1/option-3.value
Type: string; required in containing object
### observation.eventTime/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.eventTime/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.eventTime/option-2.value/option-1/option-4.value
Type: string; required in containing object
### observation.eventTime/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.eventTime/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### observation.eventTime/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.eventTime/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### observation.eventTime/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.eventTime/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### observation.eventTime/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.eventTime/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### observation.eventTime/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### observation.eventTime/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.eventTime/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.eventTime/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### observation.eventTime/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.eventTime/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.eventTime/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### observation.eventTime/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.eventTime/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### observation.eventTime/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.eventTime/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### observation.eventTime/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### observation.eventTime/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.eventTime/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.eventTime/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### observation.eventTime/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.eventTime/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-2.selection
Type: object; optional
Extra fields: Not allowed in this object
### observation.eventTime/option-2.selection.assertionRef
Type: string; required in containing object
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-2.selection.consideredAssertionRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-2.selection.consideredAssertionRefs[]
Type: string
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-2.selection.methodRef
Type: string; required in containing object
pattern: "^method:[^\\s:]+(?![\\s\\S])"
### observation.eventTime/option-2.selection.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.selection.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.selection.evaluatedAt
Type: string; required in containing object
### observation.eventTime/option-2.selection.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-2.selection.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.selection.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-2.selection.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-2.selection.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.uncertainty
Type: choice; optional
Choose: Exactly one of the alternatives below
### observation.eventTime/option-2.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.eventTime/option-2.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.eventTime/option-2.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.eventTime/option-2.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.eventTime/option-2.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-2.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-2.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.eventTime/option-2.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.eventTime/option-2.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-2.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-2.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.eventTime/option-2.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.eventTime/option-2.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.eventTime/option-2.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.eventTime/option-2.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-2.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-3.state
Type: string; required in containing object
const: "unknown"
### observation.eventTime/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### observation.eventTime/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-4.state
Type: string; required in containing object
const: "redacted"
### observation.eventTime/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.state
Type: string; required in containing object
const: "known"
### observation.position/option-1.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.latitude
Type: number; required in containing object
minimum: -90
maximum: 90
### observation.position/option-1.value/option-1.longitude
Type: number; required in containing object
minimum: -180
maximum: 180
### observation.position/option-1.value/option-1.kind
Type: string; required in containing object
const: "geodetic"
### observation.position/option-1.value/option-1.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.altitude
Type: object; optional
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.altitude.value
Type: number; required in containing object
### observation.position/option-1.value/option-1.altitude.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.altitude.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-1.altitude.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.altitude.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-1.value/option-1.altitude.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.altitude.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.altitude.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.altitude.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-1.value/option-1.altitude.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.altitude.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.altitude.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.altitude.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.uncertainty
Type: object; optional
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.latitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-1.uncertainty.latitude/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.latitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-1.value/option-1.uncertainty.latitude/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.latitude/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.uncertainty.latitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.uncertainty.latitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-1.value/option-1.uncertainty.latitude/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.latitude/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.uncertainty.latitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.uncertainty.latitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.uncertainty.longitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-1.uncertainty.longitude/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.longitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-1.value/option-1.uncertainty.longitude/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.longitude/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.uncertainty.longitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.uncertainty.longitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-1.value/option-1.uncertainty.longitude/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.longitude/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.uncertainty.longitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.uncertainty.longitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.kind
Type: string; required in containing object
const: "cartesian"
### observation.position/option-1.value/option-2.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.x
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.x.value
Type: number; required in containing object
### observation.position/option-1.value/option-2.x.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.x.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-2.x.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.x.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-1.value/option-2.x.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-1.value/option-2.x.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.x.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-1.value/option-2.x.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.x.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.x.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.x.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.x.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.x.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-1.value/option-2.x.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.x.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.x.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.x.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.x.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-1.value/option-2.x.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-1.value/option-2.x.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.x.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-1.value/option-2.x.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.x.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.x.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.x.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.y
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.y.value
Type: number; required in containing object
### observation.position/option-1.value/option-2.y.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.y.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-2.y.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.y.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-1.value/option-2.y.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-1.value/option-2.y.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.y.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-1.value/option-2.y.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.y.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.y.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.y.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.y.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.y.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-1.value/option-2.y.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.y.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.y.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.y.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.y.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-1.value/option-2.y.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-1.value/option-2.y.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.y.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-1.value/option-2.y.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.y.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.y.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.y.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.z
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.z.value
Type: number; required in containing object
### observation.position/option-1.value/option-2.z.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.z.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-2.z.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.z.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-1.value/option-2.z.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-1.value/option-2.z.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.z.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-1.value/option-2.z.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.z.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.z.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.z.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.z.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.z.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-1.value/option-2.z.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.z.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.z.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.z.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.z.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-1.value/option-2.z.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-1.value/option-2.z.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.z.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-1.value/option-2.z.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.z.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.z.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.z.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.sourceRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.selection
Type: object; optional
Extra fields: Not allowed in this object
### observation.position/option-1.selection.assertionRef
Type: string; required in containing object
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.selection.consideredAssertionRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.selection.consideredAssertionRefs[]
Type: string
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.selection.methodRef
Type: string; required in containing object
pattern: "^method:[^\\s:]+(?![\\s\\S])"
### observation.position/option-1.selection.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.selection.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.selection.evaluatedAt
Type: string; required in containing object
### observation.position/option-1.selection.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.position/option-1.selection.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.position/option-1.selection.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.position/option-1.selection.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.position/option-1.selection.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.state
Type: string; required in containing object
const: "approximate"
### observation.position/option-2.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.latitude
Type: number; required in containing object
minimum: -90
maximum: 90
### observation.position/option-2.value/option-1.longitude
Type: number; required in containing object
minimum: -180
maximum: 180
### observation.position/option-2.value/option-1.kind
Type: string; required in containing object
const: "geodetic"
### observation.position/option-2.value/option-1.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.altitude
Type: object; optional
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.altitude.value
Type: number; required in containing object
### observation.position/option-2.value/option-1.altitude.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.altitude.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-1.altitude.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.altitude.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-2.value/option-1.altitude.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.altitude.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.altitude.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.altitude.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-2.value/option-1.altitude.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.altitude.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.altitude.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.altitude.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.uncertainty
Type: object; optional
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.latitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-1.uncertainty.latitude/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.latitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-2.value/option-1.uncertainty.latitude/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.latitude/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.uncertainty.latitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.uncertainty.latitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-2.value/option-1.uncertainty.latitude/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.latitude/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.uncertainty.latitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.uncertainty.latitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.uncertainty.longitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-1.uncertainty.longitude/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.longitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-2.value/option-1.uncertainty.longitude/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.longitude/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.uncertainty.longitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.uncertainty.longitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-2.value/option-1.uncertainty.longitude/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.longitude/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.uncertainty.longitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.uncertainty.longitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.kind
Type: string; required in containing object
const: "cartesian"
### observation.position/option-2.value/option-2.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.x
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.x.value
Type: number; required in containing object
### observation.position/option-2.value/option-2.x.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.x.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-2.x.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.x.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-2.value/option-2.x.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-2.value/option-2.x.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.x.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-2.value/option-2.x.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.x.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.x.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.x.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.x.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.x.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-2.value/option-2.x.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.x.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.x.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.x.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.x.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-2.value/option-2.x.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-2.value/option-2.x.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.x.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-2.value/option-2.x.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.x.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.x.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.x.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.y
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.y.value
Type: number; required in containing object
### observation.position/option-2.value/option-2.y.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.y.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-2.y.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.y.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-2.value/option-2.y.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-2.value/option-2.y.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.y.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-2.value/option-2.y.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.y.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.y.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.y.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.y.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.y.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-2.value/option-2.y.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.y.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.y.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.y.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.y.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-2.value/option-2.y.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-2.value/option-2.y.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.y.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-2.value/option-2.y.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.y.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.y.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.y.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.z
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.z.value
Type: number; required in containing object
### observation.position/option-2.value/option-2.z.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.z.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-2.z.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.z.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-2.value/option-2.z.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-2.value/option-2.z.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.z.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-2.value/option-2.z.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.z.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.z.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.z.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.z.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.z.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-2.value/option-2.z.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.z.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.z.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.z.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.z.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-2.value/option-2.z.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-2.value/option-2.z.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.z.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-2.value/option-2.z.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.z.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.z.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.z.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.selection
Type: object; optional
Extra fields: Not allowed in this object
### observation.position/option-2.selection.assertionRef
Type: string; required in containing object
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.selection.consideredAssertionRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.selection.consideredAssertionRefs[]
Type: string
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.selection.methodRef
Type: string; required in containing object
pattern: "^method:[^\\s:]+(?![\\s\\S])"
### observation.position/option-2.selection.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.selection.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.selection.evaluatedAt
Type: string; required in containing object
### observation.position/option-2.selection.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.position/option-2.selection.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.position/option-2.selection.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.position/option-2.selection.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.position/option-2.selection.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-3.state
Type: string; required in containing object
const: "unknown"
### observation.position/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### observation.position/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-4.state
Type: string; required in containing object
const: "redacted"
### observation.position/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.sources
Type: list of object; required in containing object
### observation.sources[]
Type: object
Extra fields: Not allowed in this object
### observation.sources[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.sources[].kind
Type: string; required in containing object
enum: ["document","testimony","instrument_data","other","unknown"]
### observation.sources[].access
Type: string; required in containing object
enum: ["public","restricted","withheld","unknown"]
### observation.sources[].title
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.sources[].uri
Type: string; optional
format: "uri"
### observation.sources[].digest
Type: object; optional
Extra fields: Not allowed in this object
### observation.sources[].digest.algorithm
Type: string; required in containing object
const: "sha256"
### observation.sources[].digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation.products
Type: list of choice; required in containing object
### observation.products[]
Type: choice
Choose: Exactly one of the alternatives below
### observation.products[]/option-1
Type: object
Extra fields: Not allowed in this object
### observation.products[]/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.products[]/option-1.format
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.products[]/option-1.access
Type: string; required in containing object
enum: ["public","restricted","withheld","unknown"]
### observation.products[]/option-1.uri
Type: string; optional
format: "uri"
### observation.products[]/option-1.digest
Type: object; optional
Extra fields: Not allowed in this object
### observation.products[]/option-1.digest.algorithm
Type: string; required in containing object
const: "sha256"
### observation.products[]/option-1.digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation.products[]/option-1.kind
Type: string; required in containing object
const: "raw"
### observation.products[]/option-1.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.products[]/option-1.sourceRefs[]
Type: string
pattern: "^(?:source):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.products[]/option-2
Type: object
Extra fields: Not allowed in this object
### observation.products[]/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.products[]/option-2.format
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.products[]/option-2.access
Type: string; required in containing object
enum: ["public","restricted","withheld","unknown"]
### observation.products[]/option-2.uri
Type: string; optional
format: "uri"
### observation.products[]/option-2.digest
Type: object; optional
Extra fields: Not allowed in this object
### observation.products[]/option-2.digest.algorithm
Type: string; required in containing object
const: "sha256"
### observation.products[]/option-2.digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation.products[]/option-2.kind
Type: string; required in containing object
const: "derived"
### observation.products[]/option-2.generatedBy
Type: string; required in containing object
pattern: "^(?:process):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.methods
Type: list of object; required in containing object
### observation.methods[]
Type: object
Extra fields: Not allowed in this object
### observation.methods[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.methods[].version
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.methods[].description
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.methods[].uri
Type: string; optional
format: "uri"
### observation.frames
Type: list of choice; required in containing object
### observation.frames[]
Type: choice
Choose: Exactly one of the alternatives below
### observation.frames[]/option-1
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.frames[]/option-1.kind
Type: string; required in containing object
const: "geodetic"
### observation.frames[]/option-1.definition
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.frames[]/option-1.definition/option-1
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.definition/option-1.state
Type: string; required in containing object
const: "identified"
### observation.frames[]/option-1.definition/option-1.authority
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.definition/option-1.code
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.definition/option-1.revision
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.definition/option-2
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.definition/option-2.state
Type: string; required in containing object
const: "described"
### observation.frames[]/option-1.definition/option-2.description
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.definition/option-3
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.definition/option-3.state
Type: string; required in containing object
const: "unknown"
### observation.frames[]/option-1.definition/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.angularUnit
Type: string; required in containing object
const: "deg"
### observation.frames[]/option-1.vertical
Type: object; optional
Extra fields: Not allowed in this object
### observation.frames[]/option-1.vertical.definition
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.frames[]/option-1.vertical.definition/option-1
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.vertical.definition/option-1.state
Type: string; required in containing object
const: "identified"
### observation.frames[]/option-1.vertical.definition/option-1.authority
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.vertical.definition/option-1.code
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.vertical.definition/option-1.revision
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.vertical.definition/option-2
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.vertical.definition/option-2.state
Type: string; required in containing object
const: "described"
### observation.frames[]/option-1.vertical.definition/option-2.description
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.vertical.definition/option-3
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.vertical.definition/option-3.state
Type: string; required in containing object
const: "unknown"
### observation.frames[]/option-1.vertical.definition/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.vertical.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-2
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.frames[]/option-2.kind
Type: string; required in containing object
const: "cartesian"
### observation.frames[]/option-2.definition
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.frames[]/option-2.definition/option-1
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-2.definition/option-1.state
Type: string; required in containing object
const: "identified"
### observation.frames[]/option-2.definition/option-1.authority
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-2.definition/option-1.code
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-2.definition/option-1.revision
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.frames[]/option-2.definition/option-2
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-2.definition/option-2.state
Type: string; required in containing object
const: "described"
### observation.frames[]/option-2.definition/option-2.description
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-2.definition/option-3
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-2.definition/option-3.state
Type: string; required in containing object
const: "unknown"
### observation.frames[]/option-2.definition/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions
Type: list of choice; required in containing object
### observation.assertions[]
Type: choice
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-1.field
Type: string; required in containing object
const: "eventTime"
### observation.assertions[]/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### observation.assertions[]/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### observation.assertions[]/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.assertions[]/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### observation.assertions[]/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.assertions[]/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### observation.assertions[]/option-1.value/option-1/option-3.value
Type: string; required in containing object
### observation.assertions[]/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.assertions[]/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.assertions[]/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.assertions[]/option-1.value/option-1/option-4.value
Type: string; required in containing object
### observation.assertions[]/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.assertions[]/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.assertions[]/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.assertions[]/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.assertions[]/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.assertions[]/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### observation.assertions[]/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### observation.assertions[]/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.assertions[]/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### observation.assertions[]/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.assertions[]/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### observation.assertions[]/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### observation.assertions[]/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.assertions[]/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.assertions[]/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.assertions[]/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### observation.assertions[]/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.assertions[]/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.assertions[]/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.assertions[]/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.assertions[]/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.assertions[]/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### observation.assertions[]/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.assertions[]/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### observation.assertions[]/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.assertions[]/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### observation.assertions[]/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### observation.assertions[]/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.assertions[]/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.assertions[]/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.assertions[]/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### observation.assertions[]/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.assertions[]/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.assertions[]/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.assertions[]/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.assertions[]/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.assertions[]/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### observation.assertions[]/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation.assertions[]/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### observation.assertions[]/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### observation.assertions[]/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### observation.assertions[]/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### observation.assertions[]/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### observation.assertions[]/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.field
Type: string; required in containing object
const: "position"
### observation.assertions[]/option-2.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.latitude
Type: number; required in containing object
minimum: -90
maximum: 90
### observation.assertions[]/option-2.value/option-1.longitude
Type: number; required in containing object
minimum: -180
maximum: 180
### observation.assertions[]/option-2.value/option-1.kind
Type: string; required in containing object
const: "geodetic"
### observation.assertions[]/option-2.value/option-1.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.altitude
Type: object; optional
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.altitude.value
Type: number; required in containing object
### observation.assertions[]/option-2.value/option-1.altitude.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.uncertainty
Type: object; optional
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.kind
Type: string; required in containing object
const: "cartesian"
### observation.assertions[]/option-2.value/option-2.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.x
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.x.value
Type: number; required in containing object
### observation.assertions[]/option-2.value/option-2.x.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.x.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.y
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.y.value
Type: number; required in containing object
### observation.assertions[]/option-2.value/option-2.y.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.y.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.z
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.z.value
Type: number; required in containing object
### observation.assertions[]/option-2.value/option-2.z.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.z.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### observation.assertions[]/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation.assertions[]/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### observation.assertions[]/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### observation.assertions[]/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### observation.assertions[]/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### observation.assertions[]/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### observation.assertions[]/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-3.field
Type: string; required in containing object
const: "measurement"
### observation.assertions[]/option-3.measurementId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-3.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.value.value
Type: number; required in containing object
### observation.assertions[]/option-3.value.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-3.value.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-3.value.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.value.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-3.value.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-3.value.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.value.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-3.value.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-3.value.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-3.value.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-3.value.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-3.value.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.value.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-3.value.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-3.value.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-3.value.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-3.value.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-3.value.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-3.value.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-3.value.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.value.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-3.value.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-3.value.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-3.value.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-3.value.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-3.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.provenance.sourceRef
Type: string; required in containing object
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-3.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### observation.assertions[]/option-3.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation.assertions[]/option-3.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-3.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### observation.assertions[]/option-3.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### observation.assertions[]/option-3.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### observation.assertions[]/option-3.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-3.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-3.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### observation.assertions[]/option-3.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### observation.assertions[]/option-3.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-3.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.measurements
Type: list of object; required in containing object
### observation.measurements[]
Type: object
Extra fields: Not allowed in this object
### observation.measurements[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].quantity
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].value
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.measurements[].value.value
Type: number; required in containing object
### observation.measurements[].value.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].value.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.measurements[].value.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.measurements[].value.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.measurements[].value.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.measurements[].value.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.measurements[].value.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.measurements[].value.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.measurements[].value.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].value.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.measurements[].value.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].value.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.measurements[].value.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.measurements[].value.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.measurements[].value.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].value.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.measurements[].value.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].value.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.measurements[].value.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.measurements[].value.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.measurements[].value.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.measurements[].value.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.measurements[].value.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].value.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.measurements[].value.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.measurements[].sourceRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].frameRef
Type: string; optional
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].selection
Type: object; optional
Extra fields: Not allowed in this object
### observation.measurements[].selection.assertionRef
Type: string; required in containing object
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].selection.consideredAssertionRefs
Type: list of string; required in containing object
minItems: 1
### observation.measurements[].selection.consideredAssertionRefs[]
Type: string
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].selection.methodRef
Type: string; required in containing object
pattern: "^method:[^\\s:]+(?![\\s\\S])"
### observation.measurements[].selection.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].selection.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].selection.evaluatedAt
Type: string; required in containing object
### observation.measurements[].selection.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.measurements[].selection.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.measurements[].selection.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.measurements[].selection.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.measurements[].selection.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.processing
Type: list of object; required in containing object
### observation.processing[]
Type: object
Extra fields: Not allowed in this object
### observation.processing[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.processing[].methodRef
Type: string; required in containing object
pattern: "^(?:method):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.processing[].methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.processing[].performedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.processing[].performedAt
Type: string; required in containing object
### observation.processing[].performedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.processing[].performedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.processing[].performedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.processing[].performedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.processing[].inputRefs
Type: list of string; required in containing object
minItems: 1
### observation.processing[].inputRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.processing[].outputRefs
Type: list of string; required in containing object
minItems: 1
### observation.processing[].outputRefs[]
Type: string
pattern: "^(?:product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.extensions
Type: object; optional
### observation.extensions/keys
Type: string
pattern: "^[a-z][a-z0-9_-]*(?:\\.[a-z0-9_-]+)+(?![\\s\\S])"
### observation.extensions/value
Type: JSON value
Reference: #/$defs/__schema30
Value: Arbitrary JSON; extension contents are not semantically checked by the core.
### claims
Type: list of choice; required in containing object
### claims[]
Type: choice
Choose: At least one of the alternatives below
### claims[]/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.recordedAt
Type: string; required in containing object
### claims[]/option-1.recordedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-1.recordedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-1.recordedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-1.recordedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-1.topic
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-1.subject
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-1.subject/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-1.kind
Type: string; required in containing object
const: "observation"
### claims[]/option-1.subject/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.kind
Type: string; required in containing object
const: "entity"
### claims[]/option-1.subject/option-2.reference
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:research-entities:0.4.0"
### claims[]/option-1.subject/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-1.subject/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "witness"
### claims[]/option-1.subject/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-1.field
Type: string; optional
enum: ["publicIdentity","anonymous","willingToBeIdentified","category","role","organization","experienceYears","securityClearance","isProfessionalObserver","hasAviationExperience","hasMilitaryExperience","hasScientificBackground","hasPriorUAPKnowledge","wasSkepticPrior","description"]
### claims[]/option-1.subject/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "account"
### claims[]/option-1.subject/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-2.field
Type: string; optional
enum: ["speakerWitnessIds","recorder","context","recordedTime","dateCertainty","eventContext","content","summary","sourceDocument","interviewAvailable","writtenReportAvailable","underOath","custodyStatus","supportRefs"]
### claims[]/option-1.subject/option-2.reference.target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-3.kind
Type: string; required in containing object
const: "procedure"
### claims[]/option-1.subject/option-2.reference.target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-3.field
Type: string; optional
enum: ["procedureType","witnessId","accountId","administered","passed","performedAt","context","sourceDocument"]
### claims[]/option-1.subject/option-2.reference.target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-4.kind
Type: string; required in containing object
const: "witness_group"
### claims[]/option-1.subject/option-2.reference.target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-4.field
Type: string; optional
enum: ["witnessIds","reportedCount","categories","militaryWitnesses","aviationWitnesses","professionalObservers","descriptions"]
### claims[]/option-1.subject/option-2.reference.target/option-5
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-5.kind
Type: string; required in containing object
const: "source_edition"
### claims[]/option-1.subject/option-2.reference.target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-5.field
Type: string; optional
enum: ["title","type","author","organization","issuedAt","archiveLocation","primaryDisplay","originalUrl","archiveUrl","reference","isPrimarySource","documentType","originatingAgency","controlNumbers","foiaRequestNumber","originalClassification","classificationLevel","pageCount","redactionLevel","redactionDescription","redactionPercent","notes"]
### claims[]/option-1.subject/option-2.reference.target/option-6
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-6.kind
Type: string; required in containing object
const: "document_event"
### claims[]/option-1.subject/option-2.reference.target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-6.field
Type: string; optional
enum: ["eventType","occurredAt","authority","reference","marking","notes"]
### claims[]/option-1.subject/option-2.reference.target/option-7
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-7.kind
Type: string; required in containing object
const: "digital_artifact"
### claims[]/option-1.subject/option-2.reference.target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-7.field
Type: string; optional
enum: ["declaredHashes","device","manufacturer","model","software","originalFilename","originalCreationDate","gpsCoordinates","metadataPreserved","metadataStripped","strippedReason","custodyStatus","provenanceChainDescription","derivedFromArtifactIds","lastUpdated","notes"]
### claims[]/option-1.subject/option-2.reference.target/option-8
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-8.kind
Type: string; required in containing object
const: "digital_custody_action"
### claims[]/option-1.subject/option-2.reference.target/option-8.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-8.field
Type: string; optional
enum: ["action","occurredAt","from","to","location","reference","notes"]
### claims[]/option-1.subject/option-2.reference.target/option-9
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-9.kind
Type: string; required in containing object
const: "external_identifier"
### claims[]/option-1.subject/option-2.reference.target/option-9.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-9.field
Type: string; optional
enum: ["value","primaryDisplay","notes"]
### claims[]/option-1.subject/option-2.reference.target/option-10
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-10.kind
Type: string; required in containing object
const: "identifier_check"
### claims[]/option-1.subject/option-2.reference.target/option-10.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-10.field
Type: string; optional
enum: ["checkedAt","agent","method","methodVersion","outcome","notes"]
### claims[]/option-1.subject/option-2.reference.target/option-11
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-11.kind
Type: string; required in containing object
const: "material"
### claims[]/option-1.subject/option-2.reference.target/option-11.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-11.field
Type: string; optional
enum: ["label","type","description","reportedQuality","collectionTime","collectionMethod","collectorName","collectorOrganization","storageLocation","reportedCustodyStatus","photographed","labReportAvailable","reportedAnalyses","reportedAnalysisSummary","supportRefs","notes"]
### claims[]/option-1.subject/option-2.reference.target/option-12
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-12.kind
Type: string; required in containing object
const: "material_trace"
### claims[]/option-1.subject/option-2.reference.target/option-12.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-12.field
Type: string; optional
enum: ["type","description","recordedTime","recordedBy","locationDescription","photographed","supportRefs","notes"]
### claims[]/option-1.subject/option-2.reference.target/option-13
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-13.kind
Type: string; required in containing object
const: "material_preparation"
### claims[]/option-1.subject/option-2.reference.target/option-13.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-13.field
Type: string; optional
enum: ["method","methodVersion","performedAt","operator","organization","description","supportRefs","notes"]
### claims[]/option-1.subject/option-2.reference.target/option-14
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-14.kind
Type: string; required in containing object
const: "material_custody_action"
### claims[]/option-1.subject/option-2.reference.target/option-14.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-14.field
Type: string; optional
enum: ["action","occurredAt","from","to","location","reference","supportRefs","notes"]
### claims[]/option-1.subject/option-2.reference.target/option-15
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-15.kind
Type: string; required in containing object
const: "laboratory_analysis"
### claims[]/option-1.subject/option-2.reference.target/option-15.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-15.field
Type: string; optional
enum: ["label","method","laboratory","operator","performedAt","protocol","preparationDescription","reportArtifacts","notes"]
### claims[]/option-1.subject/option-2.reference.target/option-16
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-16.kind
Type: string; required in containing object
const: "laboratory_result"
### claims[]/option-1.subject/option-2.reference.target/option-16.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-16.field
Type: string; optional
enum: ["analyte","result","reportArtifacts","notes"]
### claims[]/option-1.subject/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.kind
Type: string; required in containing object
const: "context"
### claims[]/option-1.subject/option-3.reference
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-3.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### claims[]/option-1.subject/option-3.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-1.subject/option-3.reference.target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-1.subject/option-3.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### claims[]/option-1.subject/option-3.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-3.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### claims[]/option-1.subject/option-3.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.reference.target/option-2.kind
Type: string; required in containing object
const: "reported_object"
### claims[]/option-1.subject/option-3.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-3.reference.target/option-2.field
Type: string; optional
enum: ["shape","sizeDescription","color","secondaryColors","luminosity","sound","soundDescription","surfaceDetails","formation","structuralFeatures","countDescription","speedDescription","altitudeDescription","flightPath","maneuvers","maneuverDescriptions","trajectoryDescription","radarContactReported","infraredSignatureReported"]
### claims[]/option-1.subject/option-3.reference.target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.reference.target/option-3.kind
Type: string; required in containing object
const: "place"
### claims[]/option-1.subject/option-3.reference.target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-3.reference.target/option-3.field
Type: string; optional
enum: ["name","country","countryCode","region","city","address","position","coordinatePrecision","coordinatesApproximate","elevationSource","siteType","secondarySiteTypes","terrain","airspaceClass","proximity","infrastructureSensitivity","sensitivity"]
### claims[]/option-1.subject/option-3.reference.target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.reference.target/option-4.kind
Type: string; required in containing object
const: "platform"
### claims[]/option-1.subject/option-3.reference.target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-3.reference.target/option-4.field
Type: string; optional
enum: ["role","placeId","name","type","designation","callsign","flightNumber","squadron","mission","operator","radarContact","weaponsSystemEngaged","interceptAttempted"]
### claims[]/option-1.subject/option-3.reference.target/option-5
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.reference.target/option-5.kind
Type: string; required in containing object
const: "environment"
### claims[]/option-1.subject/option-3.reference.target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-3.reference.target/option-5.field
Type: string; optional
enum: ["placeId","platformId","temporalId","observedAt","weather","visibility","cloudCover","windDescription","celestialConditions","moonPhase","precipitation"]
### claims[]/option-1.subject/option-3.reference.target/option-6
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.reference.target/option-6.kind
Type: string; required in containing object
const: "temporal"
### claims[]/option-1.subject/option-3.reference.target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-3.reference.target/option-6.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### claims[]/option-1.subject/option-3.reference.target/option-7
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.reference.target/option-7.kind
Type: string; required in containing object
const: "collection"
### claims[]/option-1.subject/option-3.reference.target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-3.reference.target/option-7.field
Type: string; optional
enum: ["sensorType","detectionMethod","productRefs","acquisitionIds","retentionStatus","rawDataAvailable","anomalies","correlationDescription","alignmentDescription","notes"]
### claims[]/option-1.subject/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-4.kind
Type: string; required in containing object
const: "measurement"
### claims[]/option-1.subject/option-4.measurementId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.supersedes
Type: list of string; optional
minItems: 1
### claims[]/option-1.supersedes[]
Type: string
pattern: "^claim:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.kind
Type: string; required in containing object
const: "source_assertion"
### claims[]/option-1.text
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-1.reportedLevel
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### claims[]/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### claims[]/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### claims[]/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### claims[]/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### claims[]/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### claims[]/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### claims[]/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### claims[]/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### claims[]/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### claims[]/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-1.editionCitation
Type: object; optional
Extra fields: Not allowed in this object
### claims[]/option-1.editionCitation.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-1.editionCitation.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.editionCitation.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:research-entities:0.4.0"
### claims[]/option-1.editionCitation.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-1.editionCitation.editionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.editionCitation.artifact
Type: object; required in containing object
One exact artifact in the scoped observation inventory. A URL, title or legacy hash cannot substitute for this identity.
Extra fields: Not allowed in this object
### claims[]/option-1.editionCitation.artifact.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.editionCitation.artifact.digest
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-1.editionCitation.artifact.digest.algorithm
Type: string; required in containing object
const: "sha256"
### claims[]/option-1.editionCitation.artifact.digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-1.editionCitation.locator
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-1.editionCitation.locator/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.editionCitation.locator/option-1.kind
Type: string; required in containing object
const: "page"
### claims[]/option-1.editionCitation.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### claims[]/option-1.editionCitation.locator/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.editionCitation.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### claims[]/option-1.editionCitation.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### claims[]/option-1.editionCitation.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### claims[]/option-1.editionCitation.locator/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.editionCitation.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### claims[]/option-1.editionCitation.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### claims[]/option-1.reportedArtifactReview
Type: object; optional
An attributed authenticity or source-credibility review, not an automatic result of snapshot validation.
Extra fields: Not allowed in this object
### claims[]/option-1.reportedArtifactReview.verifier
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-1.reportedArtifactReview.organization
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-1.reportedArtifactReview.credentials
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-1.reportedArtifactReview.reviewedAt
Type: choice; optional
Choose: At least one of the alternatives below
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1
Type: choice
Choose: Exactly one of the alternatives below
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-3.value
Type: string; required in containing object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-4.value
Type: string; required in containing object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.kind
Type: string; required in containing object
const: "interval"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-3.value
Type: string; required in containing object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-4.value
Type: string; required in containing object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-3.value
Type: string; required in containing object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-4.value
Type: string; required in containing object
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-1.reportedArtifactReview.reviewedAt/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### claims[]/option-1.reportedArtifactReview.verificationMethod
Type: string; optional
Method used to verify media authenticity.
enum: ["metadata_analysis","forensic_analysis","hash_verification","chain_of_custody","source_confirmation","expert_review","ai_analysis","other"]
### claims[]/option-1.reportedArtifactReview.methodDescription
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-1.reportedArtifactReview.result
Type: string; optional
Outcome of an authenticity verification.
enum: ["authentic","likely_authentic","inconclusive","likely_manipulated","manipulated","ai_generated","deepfake","composite","unknown"]
### claims[]/option-1.reportedArtifactReview.confidence
Type: string; optional
enum: ["high","medium","low","unassessed"]
### claims[]/option-1.reportedArtifactReview.sourceCredibility
Type: string; optional
Trust tier of a source — an orthogonal axis to confidence and temporal certainty.
enum: ["official","verified","credible","unverified","questionable","disputed","unknown"]
### claims[]/option-1.reportedArtifactReview.findings
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-1.reportedArtifactReview.reportRef
Type: string; optional
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.reportedArtifactReview.reportUrl
Type: string; optional
format: "uri"
### claims[]/option-1.reportedArtifactReview.manipulationDetected
Type: boolean; optional
### claims[]/option-1.reportedArtifactReview.manipulationDescription
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-1.reportedArtifactReview.notes
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-1.reportedMaterialReview
Type: object; optional
An attributed material or analytical review, never an automatic quality, origin or scientific-validity finding.
Extra fields: Not allowed in this object
### claims[]/option-1.reportedMaterialReview.quality
Type: string; optional
Collection/handling quality of a physical evidence item.
enum: ["laboratory_grade","field_collected","uncontrolled","degraded","contaminated","unknown"]
### claims[]/option-1.reportedMaterialReview.custody
Type: string; optional
Custody status of an evidence item.
enum: ["verified","partial","unverified","government_held","private_held","lost","destroyed","classified","unknown"]
### claims[]/option-1.reportedMaterialReview.contamination
Type: string; optional
enum: ["reported","not_detected","unknown"]
### claims[]/option-1.reportedMaterialReview.representativeness
Type: string; optional
enum: ["supported","not_supported","unknown"]
### claims[]/option-1.reportedMaterialReview.limitations
Type: list of string; optional
minItems: 1
### claims[]/option-1.reportedMaterialReview.limitations[]
Type: string
minLength: 1
pattern: "\\S"
### claims[]/option-1.reportedMaterialReview.findings
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.recordedAt
Type: string; required in containing object
### claims[]/option-2.recordedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-2.recordedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-2.recordedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-2.recordedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-2.topic
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-2.subject
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-2.subject/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-1.kind
Type: string; required in containing object
const: "observation"
### claims[]/option-2.subject/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.kind
Type: string; required in containing object
const: "entity"
### claims[]/option-2.subject/option-2.reference
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:research-entities:0.4.0"
### claims[]/option-2.subject/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-2.subject/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "witness"
### claims[]/option-2.subject/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-1.field
Type: string; optional
enum: ["publicIdentity","anonymous","willingToBeIdentified","category","role","organization","experienceYears","securityClearance","isProfessionalObserver","hasAviationExperience","hasMilitaryExperience","hasScientificBackground","hasPriorUAPKnowledge","wasSkepticPrior","description"]
### claims[]/option-2.subject/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "account"
### claims[]/option-2.subject/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-2.field
Type: string; optional
enum: ["speakerWitnessIds","recorder","context","recordedTime","dateCertainty","eventContext","content","summary","sourceDocument","interviewAvailable","writtenReportAvailable","underOath","custodyStatus","supportRefs"]
### claims[]/option-2.subject/option-2.reference.target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-3.kind
Type: string; required in containing object
const: "procedure"
### claims[]/option-2.subject/option-2.reference.target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-3.field
Type: string; optional
enum: ["procedureType","witnessId","accountId","administered","passed","performedAt","context","sourceDocument"]
### claims[]/option-2.subject/option-2.reference.target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-4.kind
Type: string; required in containing object
const: "witness_group"
### claims[]/option-2.subject/option-2.reference.target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-4.field
Type: string; optional
enum: ["witnessIds","reportedCount","categories","militaryWitnesses","aviationWitnesses","professionalObservers","descriptions"]
### claims[]/option-2.subject/option-2.reference.target/option-5
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-5.kind
Type: string; required in containing object
const: "source_edition"
### claims[]/option-2.subject/option-2.reference.target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-5.field
Type: string; optional
enum: ["title","type","author","organization","issuedAt","archiveLocation","primaryDisplay","originalUrl","archiveUrl","reference","isPrimarySource","documentType","originatingAgency","controlNumbers","foiaRequestNumber","originalClassification","classificationLevel","pageCount","redactionLevel","redactionDescription","redactionPercent","notes"]
### claims[]/option-2.subject/option-2.reference.target/option-6
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-6.kind
Type: string; required in containing object
const: "document_event"
### claims[]/option-2.subject/option-2.reference.target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-6.field
Type: string; optional
enum: ["eventType","occurredAt","authority","reference","marking","notes"]
### claims[]/option-2.subject/option-2.reference.target/option-7
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-7.kind
Type: string; required in containing object
const: "digital_artifact"
### claims[]/option-2.subject/option-2.reference.target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-7.field
Type: string; optional
enum: ["declaredHashes","device","manufacturer","model","software","originalFilename","originalCreationDate","gpsCoordinates","metadataPreserved","metadataStripped","strippedReason","custodyStatus","provenanceChainDescription","derivedFromArtifactIds","lastUpdated","notes"]
### claims[]/option-2.subject/option-2.reference.target/option-8
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-8.kind
Type: string; required in containing object
const: "digital_custody_action"
### claims[]/option-2.subject/option-2.reference.target/option-8.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-8.field
Type: string; optional
enum: ["action","occurredAt","from","to","location","reference","notes"]
### claims[]/option-2.subject/option-2.reference.target/option-9
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-9.kind
Type: string; required in containing object
const: "external_identifier"
### claims[]/option-2.subject/option-2.reference.target/option-9.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-9.field
Type: string; optional
enum: ["value","primaryDisplay","notes"]
### claims[]/option-2.subject/option-2.reference.target/option-10
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-10.kind
Type: string; required in containing object
const: "identifier_check"
### claims[]/option-2.subject/option-2.reference.target/option-10.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-10.field
Type: string; optional
enum: ["checkedAt","agent","method","methodVersion","outcome","notes"]
### claims[]/option-2.subject/option-2.reference.target/option-11
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-11.kind
Type: string; required in containing object
const: "material"
### claims[]/option-2.subject/option-2.reference.target/option-11.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-11.field
Type: string; optional
enum: ["label","type","description","reportedQuality","collectionTime","collectionMethod","collectorName","collectorOrganization","storageLocation","reportedCustodyStatus","photographed","labReportAvailable","reportedAnalyses","reportedAnalysisSummary","supportRefs","notes"]
### claims[]/option-2.subject/option-2.reference.target/option-12
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-12.kind
Type: string; required in containing object
const: "material_trace"
### claims[]/option-2.subject/option-2.reference.target/option-12.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-12.field
Type: string; optional
enum: ["type","description","recordedTime","recordedBy","locationDescription","photographed","supportRefs","notes"]
### claims[]/option-2.subject/option-2.reference.target/option-13
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-13.kind
Type: string; required in containing object
const: "material_preparation"
### claims[]/option-2.subject/option-2.reference.target/option-13.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-13.field
Type: string; optional
enum: ["method","methodVersion","performedAt","operator","organization","description","supportRefs","notes"]
### claims[]/option-2.subject/option-2.reference.target/option-14
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-14.kind
Type: string; required in containing object
const: "material_custody_action"
### claims[]/option-2.subject/option-2.reference.target/option-14.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-14.field
Type: string; optional
enum: ["action","occurredAt","from","to","location","reference","supportRefs","notes"]
### claims[]/option-2.subject/option-2.reference.target/option-15
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-15.kind
Type: string; required in containing object
const: "laboratory_analysis"
### claims[]/option-2.subject/option-2.reference.target/option-15.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-15.field
Type: string; optional
enum: ["label","method","laboratory","operator","performedAt","protocol","preparationDescription","reportArtifacts","notes"]
### claims[]/option-2.subject/option-2.reference.target/option-16
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-16.kind
Type: string; required in containing object
const: "laboratory_result"
### claims[]/option-2.subject/option-2.reference.target/option-16.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-16.field
Type: string; optional
enum: ["analyte","result","reportArtifacts","notes"]
### claims[]/option-2.subject/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.kind
Type: string; required in containing object
const: "context"
### claims[]/option-2.subject/option-3.reference
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-3.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### claims[]/option-2.subject/option-3.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-2.subject/option-3.reference.target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-2.subject/option-3.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### claims[]/option-2.subject/option-3.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-3.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### claims[]/option-2.subject/option-3.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.reference.target/option-2.kind
Type: string; required in containing object
const: "reported_object"
### claims[]/option-2.subject/option-3.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-3.reference.target/option-2.field
Type: string; optional
enum: ["shape","sizeDescription","color","secondaryColors","luminosity","sound","soundDescription","surfaceDetails","formation","structuralFeatures","countDescription","speedDescription","altitudeDescription","flightPath","maneuvers","maneuverDescriptions","trajectoryDescription","radarContactReported","infraredSignatureReported"]
### claims[]/option-2.subject/option-3.reference.target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.reference.target/option-3.kind
Type: string; required in containing object
const: "place"
### claims[]/option-2.subject/option-3.reference.target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-3.reference.target/option-3.field
Type: string; optional
enum: ["name","country","countryCode","region","city","address","position","coordinatePrecision","coordinatesApproximate","elevationSource","siteType","secondarySiteTypes","terrain","airspaceClass","proximity","infrastructureSensitivity","sensitivity"]
### claims[]/option-2.subject/option-3.reference.target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.reference.target/option-4.kind
Type: string; required in containing object
const: "platform"
### claims[]/option-2.subject/option-3.reference.target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-3.reference.target/option-4.field
Type: string; optional
enum: ["role","placeId","name","type","designation","callsign","flightNumber","squadron","mission","operator","radarContact","weaponsSystemEngaged","interceptAttempted"]
### claims[]/option-2.subject/option-3.reference.target/option-5
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.reference.target/option-5.kind
Type: string; required in containing object
const: "environment"
### claims[]/option-2.subject/option-3.reference.target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-3.reference.target/option-5.field
Type: string; optional
enum: ["placeId","platformId","temporalId","observedAt","weather","visibility","cloudCover","windDescription","celestialConditions","moonPhase","precipitation"]
### claims[]/option-2.subject/option-3.reference.target/option-6
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.reference.target/option-6.kind
Type: string; required in containing object
const: "temporal"
### claims[]/option-2.subject/option-3.reference.target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-3.reference.target/option-6.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### claims[]/option-2.subject/option-3.reference.target/option-7
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.reference.target/option-7.kind
Type: string; required in containing object
const: "collection"
### claims[]/option-2.subject/option-3.reference.target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-3.reference.target/option-7.field
Type: string; optional
enum: ["sensorType","detectionMethod","productRefs","acquisitionIds","retentionStatus","rawDataAvailable","anomalies","correlationDescription","alignmentDescription","notes"]
### claims[]/option-2.subject/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-4.kind
Type: string; required in containing object
const: "measurement"
### claims[]/option-2.subject/option-4.measurementId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.supersedes
Type: list of string; optional
minItems: 1
### claims[]/option-2.supersedes[]
Type: string
pattern: "^claim:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.kind
Type: string; required in containing object
const: "assessment"
### claims[]/option-2.inputRefs
Type: list of string; required in containing object
### claims[]/option-2.inputRefs[]
Type: string
pattern: "^(?:claim|source|product|assertion|measurement):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs
Type: list of object; optional
### claims[]/option-2.contextInputRefs[]
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### claims[]/option-2.contextInputRefs[].document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-2.contextInputRefs[].target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].target/option-1.kind
Type: string; required in containing object
const: "event"
### claims[]/option-2.contextInputRefs[].target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### claims[]/option-2.contextInputRefs[].target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].target/option-2.kind
Type: string; required in containing object
const: "reported_object"
### claims[]/option-2.contextInputRefs[].target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target/option-2.field
Type: string; optional
enum: ["shape","sizeDescription","color","secondaryColors","luminosity","sound","soundDescription","surfaceDetails","formation","structuralFeatures","countDescription","speedDescription","altitudeDescription","flightPath","maneuvers","maneuverDescriptions","trajectoryDescription","radarContactReported","infraredSignatureReported"]
### claims[]/option-2.contextInputRefs[].target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].target/option-3.kind
Type: string; required in containing object
const: "place"
### claims[]/option-2.contextInputRefs[].target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target/option-3.field
Type: string; optional
enum: ["name","country","countryCode","region","city","address","position","coordinatePrecision","coordinatesApproximate","elevationSource","siteType","secondarySiteTypes","terrain","airspaceClass","proximity","infrastructureSensitivity","sensitivity"]
### claims[]/option-2.contextInputRefs[].target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].target/option-4.kind
Type: string; required in containing object
const: "platform"
### claims[]/option-2.contextInputRefs[].target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target/option-4.field
Type: string; optional
enum: ["role","placeId","name","type","designation","callsign","flightNumber","squadron","mission","operator","radarContact","weaponsSystemEngaged","interceptAttempted"]
### claims[]/option-2.contextInputRefs[].target/option-5
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].target/option-5.kind
Type: string; required in containing object
const: "environment"
### claims[]/option-2.contextInputRefs[].target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target/option-5.field
Type: string; optional
enum: ["placeId","platformId","temporalId","observedAt","weather","visibility","cloudCover","windDescription","celestialConditions","moonPhase","precipitation"]
### claims[]/option-2.contextInputRefs[].target/option-6
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].target/option-6.kind
Type: string; required in containing object
const: "temporal"
### claims[]/option-2.contextInputRefs[].target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target/option-6.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### claims[]/option-2.contextInputRefs[].target/option-7
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].target/option-7.kind
Type: string; required in containing object
const: "collection"
### claims[]/option-2.contextInputRefs[].target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target/option-7.field
Type: string; optional
enum: ["sensorType","detectionMethod","productRefs","acquisitionIds","retentionStatus","rawDataAvailable","anomalies","correlationDescription","alignmentDescription","notes"]
### claims[]/option-2.contextInputRefs[].assertionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs
Type: list of object; optional
### claims[]/option-2.entityInputRefs[]
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:research-entities:0.4.0"
### claims[]/option-2.entityInputRefs[].document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-2.entityInputRefs[].target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].target/option-1.kind
Type: string; required in containing object
const: "witness"
### claims[]/option-2.entityInputRefs[].target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target/option-1.field
Type: string; optional
enum: ["publicIdentity","anonymous","willingToBeIdentified","category","role","organization","experienceYears","securityClearance","isProfessionalObserver","hasAviationExperience","hasMilitaryExperience","hasScientificBackground","hasPriorUAPKnowledge","wasSkepticPrior","description"]
### claims[]/option-2.entityInputRefs[].target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].target/option-2.kind
Type: string; required in containing object
const: "account"
### claims[]/option-2.entityInputRefs[].target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target/option-2.field
Type: string; optional
enum: ["speakerWitnessIds","recorder","context","recordedTime","dateCertainty","eventContext","content","summary","sourceDocument","interviewAvailable","writtenReportAvailable","underOath","custodyStatus","supportRefs"]
### claims[]/option-2.entityInputRefs[].target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].target/option-3.kind
Type: string; required in containing object
const: "procedure"
### claims[]/option-2.entityInputRefs[].target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target/option-3.field
Type: string; optional
enum: ["procedureType","witnessId","accountId","administered","passed","performedAt","context","sourceDocument"]
### claims[]/option-2.entityInputRefs[].target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].target/option-4.kind
Type: string; required in containing object
const: "witness_group"
### claims[]/option-2.entityInputRefs[].target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target/option-4.field
Type: string; optional
enum: ["witnessIds","reportedCount","categories","militaryWitnesses","aviationWitnesses","professionalObservers","descriptions"]
### claims[]/option-2.entityInputRefs[].target/option-5
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].target/option-5.kind
Type: string; required in containing object
const: "source_edition"
### claims[]/option-2.entityInputRefs[].target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target/option-5.field
Type: string; optional
enum: ["title","type","author","organization","issuedAt","archiveLocation","primaryDisplay","originalUrl","archiveUrl","reference","isPrimarySource","documentType","originatingAgency","controlNumbers","foiaRequestNumber","originalClassification","classificationLevel","pageCount","redactionLevel","redactionDescription","redactionPercent","notes"]
### claims[]/option-2.entityInputRefs[].target/option-6
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].target/option-6.kind
Type: string; required in containing object
const: "document_event"
### claims[]/option-2.entityInputRefs[].target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target/option-6.field
Type: string; optional
enum: ["eventType","occurredAt","authority","reference","marking","notes"]
### claims[]/option-2.entityInputRefs[].target/option-7
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].target/option-7.kind
Type: string; required in containing object
const: "digital_artifact"
### claims[]/option-2.entityInputRefs[].target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target/option-7.field
Type: string; optional
enum: ["declaredHashes","device","manufacturer","model","software","originalFilename","originalCreationDate","gpsCoordinates","metadataPreserved","metadataStripped","strippedReason","custodyStatus","provenanceChainDescription","derivedFromArtifactIds","lastUpdated","notes"]
### claims[]/option-2.entityInputRefs[].target/option-8
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].target/option-8.kind
Type: string; required in containing object
const: "digital_custody_action"
### claims[]/option-2.entityInputRefs[].target/option-8.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target/option-8.field
Type: string; optional
enum: ["action","occurredAt","from","to","location","reference","notes"]
### claims[]/option-2.entityInputRefs[].target/option-9
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].target/option-9.kind
Type: string; required in containing object
const: "external_identifier"
### claims[]/option-2.entityInputRefs[].target/option-9.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target/option-9.field
Type: string; optional
enum: ["value","primaryDisplay","notes"]
### claims[]/option-2.entityInputRefs[].target/option-10
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].target/option-10.kind
Type: string; required in containing object
const: "identifier_check"
### claims[]/option-2.entityInputRefs[].target/option-10.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target/option-10.field
Type: string; optional
enum: ["checkedAt","agent","method","methodVersion","outcome","notes"]
### claims[]/option-2.entityInputRefs[].target/option-11
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].target/option-11.kind
Type: string; required in containing object
const: "material"
### claims[]/option-2.entityInputRefs[].target/option-11.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target/option-11.field
Type: string; optional
enum: ["label","type","description","reportedQuality","collectionTime","collectionMethod","collectorName","collectorOrganization","storageLocation","reportedCustodyStatus","photographed","labReportAvailable","reportedAnalyses","reportedAnalysisSummary","supportRefs","notes"]
### claims[]/option-2.entityInputRefs[].target/option-12
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].target/option-12.kind
Type: string; required in containing object
const: "material_trace"
### claims[]/option-2.entityInputRefs[].target/option-12.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target/option-12.field
Type: string; optional
enum: ["type","description","recordedTime","recordedBy","locationDescription","photographed","supportRefs","notes"]
### claims[]/option-2.entityInputRefs[].target/option-13
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].target/option-13.kind
Type: string; required in containing object
const: "material_preparation"
### claims[]/option-2.entityInputRefs[].target/option-13.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target/option-13.field
Type: string; optional
enum: ["method","methodVersion","performedAt","operator","organization","description","supportRefs","notes"]
### claims[]/option-2.entityInputRefs[].target/option-14
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].target/option-14.kind
Type: string; required in containing object
const: "material_custody_action"
### claims[]/option-2.entityInputRefs[].target/option-14.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target/option-14.field
Type: string; optional
enum: ["action","occurredAt","from","to","location","reference","supportRefs","notes"]
### claims[]/option-2.entityInputRefs[].target/option-15
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].target/option-15.kind
Type: string; required in containing object
const: "laboratory_analysis"
### claims[]/option-2.entityInputRefs[].target/option-15.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target/option-15.field
Type: string; optional
enum: ["label","method","laboratory","operator","performedAt","protocol","preparationDescription","reportArtifacts","notes"]
### claims[]/option-2.entityInputRefs[].target/option-16
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].target/option-16.kind
Type: string; required in containing object
const: "laboratory_result"
### claims[]/option-2.entityInputRefs[].target/option-16.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target/option-16.field
Type: string; optional
enum: ["analyte","result","reportArtifacts","notes"]
### claims[]/option-2.entityInputRefs[].assertionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-2.status
Type: string; required in containing object
const: "unassessed"
### claims[]/option-2.editionInputRefs
Type: list of object; optional
### claims[]/option-2.editionInputRefs[]
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.editionInputRefs[].document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-2.editionInputRefs[].document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.editionInputRefs[].document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:research-entities:0.4.0"
### claims[]/option-2.editionInputRefs[].document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-2.editionInputRefs[].editionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.editionInputRefs[].artifact
Type: object; required in containing object
One exact artifact in the scoped observation inventory. A URL, title or legacy hash cannot substitute for this identity.
Extra fields: Not allowed in this object
### claims[]/option-2.editionInputRefs[].artifact.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.editionInputRefs[].artifact.digest
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-2.editionInputRefs[].artifact.digest.algorithm
Type: string; required in containing object
const: "sha256"
### claims[]/option-2.editionInputRefs[].artifact.digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-2.editionInputRefs[].locator
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-2.editionInputRefs[].locator/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.editionInputRefs[].locator/option-1.kind
Type: string; required in containing object
const: "page"
### claims[]/option-2.editionInputRefs[].locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### claims[]/option-2.editionInputRefs[].locator/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.editionInputRefs[].locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### claims[]/option-2.editionInputRefs[].locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### claims[]/option-2.editionInputRefs[].locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### claims[]/option-2.editionInputRefs[].locator/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.editionInputRefs[].locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### claims[]/option-2.editionInputRefs[].locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### claims[]/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.recordedAt
Type: string; required in containing object
### claims[]/option-3.recordedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-3.recordedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-3.recordedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-3.recordedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-3.topic
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-3.subject
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-3.subject/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-1.kind
Type: string; required in containing object
const: "observation"
### claims[]/option-3.subject/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.kind
Type: string; required in containing object
const: "entity"
### claims[]/option-3.subject/option-2.reference
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:research-entities:0.4.0"
### claims[]/option-3.subject/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-3.subject/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "witness"
### claims[]/option-3.subject/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-1.field
Type: string; optional
enum: ["publicIdentity","anonymous","willingToBeIdentified","category","role","organization","experienceYears","securityClearance","isProfessionalObserver","hasAviationExperience","hasMilitaryExperience","hasScientificBackground","hasPriorUAPKnowledge","wasSkepticPrior","description"]
### claims[]/option-3.subject/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "account"
### claims[]/option-3.subject/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-2.field
Type: string; optional
enum: ["speakerWitnessIds","recorder","context","recordedTime","dateCertainty","eventContext","content","summary","sourceDocument","interviewAvailable","writtenReportAvailable","underOath","custodyStatus","supportRefs"]
### claims[]/option-3.subject/option-2.reference.target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-3.kind
Type: string; required in containing object
const: "procedure"
### claims[]/option-3.subject/option-2.reference.target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-3.field
Type: string; optional
enum: ["procedureType","witnessId","accountId","administered","passed","performedAt","context","sourceDocument"]
### claims[]/option-3.subject/option-2.reference.target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-4.kind
Type: string; required in containing object
const: "witness_group"
### claims[]/option-3.subject/option-2.reference.target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-4.field
Type: string; optional
enum: ["witnessIds","reportedCount","categories","militaryWitnesses","aviationWitnesses","professionalObservers","descriptions"]
### claims[]/option-3.subject/option-2.reference.target/option-5
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-5.kind
Type: string; required in containing object
const: "source_edition"
### claims[]/option-3.subject/option-2.reference.target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-5.field
Type: string; optional
enum: ["title","type","author","organization","issuedAt","archiveLocation","primaryDisplay","originalUrl","archiveUrl","reference","isPrimarySource","documentType","originatingAgency","controlNumbers","foiaRequestNumber","originalClassification","classificationLevel","pageCount","redactionLevel","redactionDescription","redactionPercent","notes"]
### claims[]/option-3.subject/option-2.reference.target/option-6
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-6.kind
Type: string; required in containing object
const: "document_event"
### claims[]/option-3.subject/option-2.reference.target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-6.field
Type: string; optional
enum: ["eventType","occurredAt","authority","reference","marking","notes"]
### claims[]/option-3.subject/option-2.reference.target/option-7
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-7.kind
Type: string; required in containing object
const: "digital_artifact"
### claims[]/option-3.subject/option-2.reference.target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-7.field
Type: string; optional
enum: ["declaredHashes","device","manufacturer","model","software","originalFilename","originalCreationDate","gpsCoordinates","metadataPreserved","metadataStripped","strippedReason","custodyStatus","provenanceChainDescription","derivedFromArtifactIds","lastUpdated","notes"]
### claims[]/option-3.subject/option-2.reference.target/option-8
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-8.kind
Type: string; required in containing object
const: "digital_custody_action"
### claims[]/option-3.subject/option-2.reference.target/option-8.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-8.field
Type: string; optional
enum: ["action","occurredAt","from","to","location","reference","notes"]
### claims[]/option-3.subject/option-2.reference.target/option-9
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-9.kind
Type: string; required in containing object
const: "external_identifier"
### claims[]/option-3.subject/option-2.reference.target/option-9.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-9.field
Type: string; optional
enum: ["value","primaryDisplay","notes"]
### claims[]/option-3.subject/option-2.reference.target/option-10
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-10.kind
Type: string; required in containing object
const: "identifier_check"
### claims[]/option-3.subject/option-2.reference.target/option-10.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-10.field
Type: string; optional
enum: ["checkedAt","agent","method","methodVersion","outcome","notes"]
### claims[]/option-3.subject/option-2.reference.target/option-11
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-11.kind
Type: string; required in containing object
const: "material"
### claims[]/option-3.subject/option-2.reference.target/option-11.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-11.field
Type: string; optional
enum: ["label","type","description","reportedQuality","collectionTime","collectionMethod","collectorName","collectorOrganization","storageLocation","reportedCustodyStatus","photographed","labReportAvailable","reportedAnalyses","reportedAnalysisSummary","supportRefs","notes"]
### claims[]/option-3.subject/option-2.reference.target/option-12
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-12.kind
Type: string; required in containing object
const: "material_trace"
### claims[]/option-3.subject/option-2.reference.target/option-12.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-12.field
Type: string; optional
enum: ["type","description","recordedTime","recordedBy","locationDescription","photographed","supportRefs","notes"]
### claims[]/option-3.subject/option-2.reference.target/option-13
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-13.kind
Type: string; required in containing object
const: "material_preparation"
### claims[]/option-3.subject/option-2.reference.target/option-13.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-13.field
Type: string; optional
enum: ["method","methodVersion","performedAt","operator","organization","description","supportRefs","notes"]
### claims[]/option-3.subject/option-2.reference.target/option-14
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-14.kind
Type: string; required in containing object
const: "material_custody_action"
### claims[]/option-3.subject/option-2.reference.target/option-14.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-14.field
Type: string; optional
enum: ["action","occurredAt","from","to","location","reference","supportRefs","notes"]
### claims[]/option-3.subject/option-2.reference.target/option-15
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-15.kind
Type: string; required in containing object
const: "laboratory_analysis"
### claims[]/option-3.subject/option-2.reference.target/option-15.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-15.field
Type: string; optional
enum: ["label","method","laboratory","operator","performedAt","protocol","preparationDescription","reportArtifacts","notes"]
### claims[]/option-3.subject/option-2.reference.target/option-16
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-16.kind
Type: string; required in containing object
const: "laboratory_result"
### claims[]/option-3.subject/option-2.reference.target/option-16.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-16.field
Type: string; optional
enum: ["analyte","result","reportArtifacts","notes"]
### claims[]/option-3.subject/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.kind
Type: string; required in containing object
const: "context"
### claims[]/option-3.subject/option-3.reference
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-3.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### claims[]/option-3.subject/option-3.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-3.subject/option-3.reference.target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-3.subject/option-3.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### claims[]/option-3.subject/option-3.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-3.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### claims[]/option-3.subject/option-3.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.reference.target/option-2.kind
Type: string; required in containing object
const: "reported_object"
### claims[]/option-3.subject/option-3.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-3.reference.target/option-2.field
Type: string; optional
enum: ["shape","sizeDescription","color","secondaryColors","luminosity","sound","soundDescription","surfaceDetails","formation","structuralFeatures","countDescription","speedDescription","altitudeDescription","flightPath","maneuvers","maneuverDescriptions","trajectoryDescription","radarContactReported","infraredSignatureReported"]
### claims[]/option-3.subject/option-3.reference.target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.reference.target/option-3.kind
Type: string; required in containing object
const: "place"
### claims[]/option-3.subject/option-3.reference.target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-3.reference.target/option-3.field
Type: string; optional
enum: ["name","country","countryCode","region","city","address","position","coordinatePrecision","coordinatesApproximate","elevationSource","siteType","secondarySiteTypes","terrain","airspaceClass","proximity","infrastructureSensitivity","sensitivity"]
### claims[]/option-3.subject/option-3.reference.target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.reference.target/option-4.kind
Type: string; required in containing object
const: "platform"
### claims[]/option-3.subject/option-3.reference.target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-3.reference.target/option-4.field
Type: string; optional
enum: ["role","placeId","name","type","designation","callsign","flightNumber","squadron","mission","operator","radarContact","weaponsSystemEngaged","interceptAttempted"]
### claims[]/option-3.subject/option-3.reference.target/option-5
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.reference.target/option-5.kind
Type: string; required in containing object
const: "environment"
### claims[]/option-3.subject/option-3.reference.target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-3.reference.target/option-5.field
Type: string; optional
enum: ["placeId","platformId","temporalId","observedAt","weather","visibility","cloudCover","windDescription","celestialConditions","moonPhase","precipitation"]
### claims[]/option-3.subject/option-3.reference.target/option-6
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.reference.target/option-6.kind
Type: string; required in containing object
const: "temporal"
### claims[]/option-3.subject/option-3.reference.target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-3.reference.target/option-6.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### claims[]/option-3.subject/option-3.reference.target/option-7
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.reference.target/option-7.kind
Type: string; required in containing object
const: "collection"
### claims[]/option-3.subject/option-3.reference.target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-3.reference.target/option-7.field
Type: string; optional
enum: ["sensorType","detectionMethod","productRefs","acquisitionIds","retentionStatus","rawDataAvailable","anomalies","correlationDescription","alignmentDescription","notes"]
### claims[]/option-3.subject/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-4.kind
Type: string; required in containing object
const: "measurement"
### claims[]/option-3.subject/option-4.measurementId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.supersedes
Type: list of string; optional
minItems: 1
### claims[]/option-3.supersedes[]
Type: string
pattern: "^claim:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.kind
Type: string; required in containing object
const: "assessment"
### claims[]/option-3.inputRefs
Type: list of string; required in containing object
### claims[]/option-3.inputRefs[]
Type: string
pattern: "^(?:claim|source|product|assertion|measurement):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs
Type: list of object; optional
### claims[]/option-3.contextInputRefs[]
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### claims[]/option-3.contextInputRefs[].document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-3.contextInputRefs[].target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].target/option-1.kind
Type: string; required in containing object
const: "event"
### claims[]/option-3.contextInputRefs[].target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### claims[]/option-3.contextInputRefs[].target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].target/option-2.kind
Type: string; required in containing object
const: "reported_object"
### claims[]/option-3.contextInputRefs[].target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target/option-2.field
Type: string; optional
enum: ["shape","sizeDescription","color","secondaryColors","luminosity","sound","soundDescription","surfaceDetails","formation","structuralFeatures","countDescription","speedDescription","altitudeDescription","flightPath","maneuvers","maneuverDescriptions","trajectoryDescription","radarContactReported","infraredSignatureReported"]
### claims[]/option-3.contextInputRefs[].target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].target/option-3.kind
Type: string; required in containing object
const: "place"
### claims[]/option-3.contextInputRefs[].target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target/option-3.field
Type: string; optional
enum: ["name","country","countryCode","region","city","address","position","coordinatePrecision","coordinatesApproximate","elevationSource","siteType","secondarySiteTypes","terrain","airspaceClass","proximity","infrastructureSensitivity","sensitivity"]
### claims[]/option-3.contextInputRefs[].target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].target/option-4.kind
Type: string; required in containing object
const: "platform"
### claims[]/option-3.contextInputRefs[].target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target/option-4.field
Type: string; optional
enum: ["role","placeId","name","type","designation","callsign","flightNumber","squadron","mission","operator","radarContact","weaponsSystemEngaged","interceptAttempted"]
### claims[]/option-3.contextInputRefs[].target/option-5
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].target/option-5.kind
Type: string; required in containing object
const: "environment"
### claims[]/option-3.contextInputRefs[].target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target/option-5.field
Type: string; optional
enum: ["placeId","platformId","temporalId","observedAt","weather","visibility","cloudCover","windDescription","celestialConditions","moonPhase","precipitation"]
### claims[]/option-3.contextInputRefs[].target/option-6
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].target/option-6.kind
Type: string; required in containing object
const: "temporal"
### claims[]/option-3.contextInputRefs[].target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target/option-6.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### claims[]/option-3.contextInputRefs[].target/option-7
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].target/option-7.kind
Type: string; required in containing object
const: "collection"
### claims[]/option-3.contextInputRefs[].target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target/option-7.field
Type: string; optional
enum: ["sensorType","detectionMethod","productRefs","acquisitionIds","retentionStatus","rawDataAvailable","anomalies","correlationDescription","alignmentDescription","notes"]
### claims[]/option-3.contextInputRefs[].assertionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs
Type: list of object; optional
### claims[]/option-3.entityInputRefs[]
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:research-entities:0.4.0"
### claims[]/option-3.entityInputRefs[].document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-3.entityInputRefs[].target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].target/option-1.kind
Type: string; required in containing object
const: "witness"
### claims[]/option-3.entityInputRefs[].target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target/option-1.field
Type: string; optional
enum: ["publicIdentity","anonymous","willingToBeIdentified","category","role","organization","experienceYears","securityClearance","isProfessionalObserver","hasAviationExperience","hasMilitaryExperience","hasScientificBackground","hasPriorUAPKnowledge","wasSkepticPrior","description"]
### claims[]/option-3.entityInputRefs[].target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].target/option-2.kind
Type: string; required in containing object
const: "account"
### claims[]/option-3.entityInputRefs[].target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target/option-2.field
Type: string; optional
enum: ["speakerWitnessIds","recorder","context","recordedTime","dateCertainty","eventContext","content","summary","sourceDocument","interviewAvailable","writtenReportAvailable","underOath","custodyStatus","supportRefs"]
### claims[]/option-3.entityInputRefs[].target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].target/option-3.kind
Type: string; required in containing object
const: "procedure"
### claims[]/option-3.entityInputRefs[].target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target/option-3.field
Type: string; optional
enum: ["procedureType","witnessId","accountId","administered","passed","performedAt","context","sourceDocument"]
### claims[]/option-3.entityInputRefs[].target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].target/option-4.kind
Type: string; required in containing object
const: "witness_group"
### claims[]/option-3.entityInputRefs[].target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target/option-4.field
Type: string; optional
enum: ["witnessIds","reportedCount","categories","militaryWitnesses","aviationWitnesses","professionalObservers","descriptions"]
### claims[]/option-3.entityInputRefs[].target/option-5
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].target/option-5.kind
Type: string; required in containing object
const: "source_edition"
### claims[]/option-3.entityInputRefs[].target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target/option-5.field
Type: string; optional
enum: ["title","type","author","organization","issuedAt","archiveLocation","primaryDisplay","originalUrl","archiveUrl","reference","isPrimarySource","documentType","originatingAgency","controlNumbers","foiaRequestNumber","originalClassification","classificationLevel","pageCount","redactionLevel","redactionDescription","redactionPercent","notes"]
### claims[]/option-3.entityInputRefs[].target/option-6
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].target/option-6.kind
Type: string; required in containing object
const: "document_event"
### claims[]/option-3.entityInputRefs[].target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target/option-6.field
Type: string; optional
enum: ["eventType","occurredAt","authority","reference","marking","notes"]
### claims[]/option-3.entityInputRefs[].target/option-7
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].target/option-7.kind
Type: string; required in containing object
const: "digital_artifact"
### claims[]/option-3.entityInputRefs[].target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target/option-7.field
Type: string; optional
enum: ["declaredHashes","device","manufacturer","model","software","originalFilename","originalCreationDate","gpsCoordinates","metadataPreserved","metadataStripped","strippedReason","custodyStatus","provenanceChainDescription","derivedFromArtifactIds","lastUpdated","notes"]
### claims[]/option-3.entityInputRefs[].target/option-8
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].target/option-8.kind
Type: string; required in containing object
const: "digital_custody_action"
### claims[]/option-3.entityInputRefs[].target/option-8.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target/option-8.field
Type: string; optional
enum: ["action","occurredAt","from","to","location","reference","notes"]
### claims[]/option-3.entityInputRefs[].target/option-9
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].target/option-9.kind
Type: string; required in containing object
const: "external_identifier"
### claims[]/option-3.entityInputRefs[].target/option-9.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target/option-9.field
Type: string; optional
enum: ["value","primaryDisplay","notes"]
### claims[]/option-3.entityInputRefs[].target/option-10
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].target/option-10.kind
Type: string; required in containing object
const: "identifier_check"
### claims[]/option-3.entityInputRefs[].target/option-10.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target/option-10.field
Type: string; optional
enum: ["checkedAt","agent","method","methodVersion","outcome","notes"]
### claims[]/option-3.entityInputRefs[].target/option-11
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].target/option-11.kind
Type: string; required in containing object
const: "material"
### claims[]/option-3.entityInputRefs[].target/option-11.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target/option-11.field
Type: string; optional
enum: ["label","type","description","reportedQuality","collectionTime","collectionMethod","collectorName","collectorOrganization","storageLocation","reportedCustodyStatus","photographed","labReportAvailable","reportedAnalyses","reportedAnalysisSummary","supportRefs","notes"]
### claims[]/option-3.entityInputRefs[].target/option-12
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].target/option-12.kind
Type: string; required in containing object
const: "material_trace"
### claims[]/option-3.entityInputRefs[].target/option-12.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target/option-12.field
Type: string; optional
enum: ["type","description","recordedTime","recordedBy","locationDescription","photographed","supportRefs","notes"]
### claims[]/option-3.entityInputRefs[].target/option-13
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].target/option-13.kind
Type: string; required in containing object
const: "material_preparation"
### claims[]/option-3.entityInputRefs[].target/option-13.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target/option-13.field
Type: string; optional
enum: ["method","methodVersion","performedAt","operator","organization","description","supportRefs","notes"]
### claims[]/option-3.entityInputRefs[].target/option-14
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].target/option-14.kind
Type: string; required in containing object
const: "material_custody_action"
### claims[]/option-3.entityInputRefs[].target/option-14.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target/option-14.field
Type: string; optional
enum: ["action","occurredAt","from","to","location","reference","supportRefs","notes"]
### claims[]/option-3.entityInputRefs[].target/option-15
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].target/option-15.kind
Type: string; required in containing object
const: "laboratory_analysis"
### claims[]/option-3.entityInputRefs[].target/option-15.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target/option-15.field
Type: string; optional
enum: ["label","method","laboratory","operator","performedAt","protocol","preparationDescription","reportArtifacts","notes"]
### claims[]/option-3.entityInputRefs[].target/option-16
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].target/option-16.kind
Type: string; required in containing object
const: "laboratory_result"
### claims[]/option-3.entityInputRefs[].target/option-16.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target/option-16.field
Type: string; optional
enum: ["analyte","result","reportArtifacts","notes"]
### claims[]/option-3.entityInputRefs[].assertionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-3.status
Type: string; required in containing object
const: "assessed"
### claims[]/option-3.outcome
Type: string; required in containing object
enum: ["reported","confirmed","absent","inconclusive"]
### claims[]/option-3.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-3.evaluatedAt
Type: string; required in containing object
### claims[]/option-3.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-3.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-3.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-3.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-3.methodRef
Type: string; required in containing object
pattern: "^method:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-3.confidence
Type: number; optional
minimum: 0
maximum: 1
### claims[]/option-3.witnessReview
Type: object; optional
Attributable interpretation, separate from sourced qualifications; requires explicit inputs.
Extra fields: Not allowed in this object
### claims[]/option-3.witnessReview.rating
Type: string; optional
Qualitative confidence magnitude.
enum: ["very_high","high","moderate","low","very_low","unassessed"]
### claims[]/option-3.witnessReview.factors
Type: list of string; optional
Reviewer-selected factor labels; no built-in weighting or validation of their truth.
### claims[]/option-3.witnessReview.factors[]
Type: string
A factor strengthening witness credibility.
enum: ["professional_training","official_capacity","sworn_statement","contemporaneous_record","corroborating_witnesses","corroborating_evidence","consistent_account","no_apparent_motive","reputation_risk","security_clearance"]
### claims[]/option-3.witnessReview.detractors
Type: list of string; optional
Retained vocabulary for attributable reviews. Anonymity never adds a penalty automatically.
### claims[]/option-3.witnessReview.detractors[]
Type: string
A factor weakening witness credibility.
enum: ["anonymous","inconsistent_account","delayed_report","known_fabricator","financial_motive","single_witness","impaired_state","recovered_memory"]
### claims[]/option-3.witnessReview.consistentTestimony
Type: string; optional
enum: ["consistent","inconsistent","unknown"]
### claims[]/option-3.witnessReview.multipleIndependent
Type: string; optional
enum: ["independent","not_independent","unknown"]
### claims[]/option-3.witnessReview.notes
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-3.editionInputRefs
Type: list of object; optional
### claims[]/option-3.editionInputRefs[]
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.editionInputRefs[].document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-3.editionInputRefs[].document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.editionInputRefs[].document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:research-entities:0.4.0"
### claims[]/option-3.editionInputRefs[].document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-3.editionInputRefs[].editionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.editionInputRefs[].artifact
Type: object; required in containing object
One exact artifact in the scoped observation inventory. A URL, title or legacy hash cannot substitute for this identity.
Extra fields: Not allowed in this object
### claims[]/option-3.editionInputRefs[].artifact.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.editionInputRefs[].artifact.digest
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-3.editionInputRefs[].artifact.digest.algorithm
Type: string; required in containing object
const: "sha256"
### claims[]/option-3.editionInputRefs[].artifact.digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-3.editionInputRefs[].locator
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-3.editionInputRefs[].locator/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.editionInputRefs[].locator/option-1.kind
Type: string; required in containing object
const: "page"
### claims[]/option-3.editionInputRefs[].locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### claims[]/option-3.editionInputRefs[].locator/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.editionInputRefs[].locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### claims[]/option-3.editionInputRefs[].locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### claims[]/option-3.editionInputRefs[].locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### claims[]/option-3.editionInputRefs[].locator/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.editionInputRefs[].locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### claims[]/option-3.editionInputRefs[].locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### claims[]/option-3.artifactReview
Type: object; optional
An attributed authenticity or source-credibility review, not an automatic result of snapshot validation.
Extra fields: Not allowed in this object
### claims[]/option-3.artifactReview.verifier
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-3.artifactReview.organization
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-3.artifactReview.credentials
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-3.artifactReview.reviewedAt
Type: choice; optional
Choose: At least one of the alternatives below
### claims[]/option-3.artifactReview.reviewedAt/option-1
Type: choice
Choose: Exactly one of the alternatives below
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-3.value
Type: string; required in containing object
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-4.value
Type: string; required in containing object
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-3.artifactReview.reviewedAt/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### claims[]/option-3.artifactReview.reviewedAt/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.artifactReview.reviewedAt/option-2.kind
Type: string; required in containing object
const: "interval"
### claims[]/option-3.artifactReview.reviewedAt/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-3.value
Type: string; required in containing object
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-4.value
Type: string; required in containing object
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-3.artifactReview.reviewedAt/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### claims[]/option-3.artifactReview.reviewedAt/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-3.value
Type: string; required in containing object
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-4.value
Type: string; required in containing object
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-3.artifactReview.reviewedAt/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### claims[]/option-3.artifactReview.verificationMethod
Type: string; optional
Method used to verify media authenticity.
enum: ["metadata_analysis","forensic_analysis","hash_verification","chain_of_custody","source_confirmation","expert_review","ai_analysis","other"]
### claims[]/option-3.artifactReview.methodDescription
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-3.artifactReview.result
Type: string; optional
Outcome of an authenticity verification.
enum: ["authentic","likely_authentic","inconclusive","likely_manipulated","manipulated","ai_generated","deepfake","composite","unknown"]
### claims[]/option-3.artifactReview.confidence
Type: string; optional
enum: ["high","medium","low","unassessed"]
### claims[]/option-3.artifactReview.sourceCredibility
Type: string; optional
Trust tier of a source — an orthogonal axis to confidence and temporal certainty.
enum: ["official","verified","credible","unverified","questionable","disputed","unknown"]
### claims[]/option-3.artifactReview.findings
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-3.artifactReview.reportRef
Type: string; optional
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.artifactReview.reportUrl
Type: string; optional
format: "uri"
### claims[]/option-3.artifactReview.manipulationDetected
Type: boolean; optional
### claims[]/option-3.artifactReview.manipulationDescription
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-3.artifactReview.notes
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-3.materialReview
Type: object; optional
An attributed material or analytical review, never an automatic quality, origin or scientific-validity finding.
Extra fields: Not allowed in this object
### claims[]/option-3.materialReview.quality
Type: string; optional
Collection/handling quality of a physical evidence item.
enum: ["laboratory_grade","field_collected","uncontrolled","degraded","contaminated","unknown"]
### claims[]/option-3.materialReview.custody
Type: string; optional
Custody status of an evidence item.
enum: ["verified","partial","unverified","government_held","private_held","lost","destroyed","classified","unknown"]
### claims[]/option-3.materialReview.contamination
Type: string; optional
enum: ["reported","not_detected","unknown"]
### claims[]/option-3.materialReview.representativeness
Type: string; optional
enum: ["supported","not_supported","unknown"]
### claims[]/option-3.materialReview.limitations
Type: list of string; optional
minItems: 1
### claims[]/option-3.materialReview.limitations[]
Type: string
minLength: 1
pattern: "\\S"
### claims[]/option-3.materialReview.findings
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### extensions
Type: object; optional
### extensions/keys
Type: string
pattern: "^[a-z][a-z0-9_-]*(?:\\.[a-z0-9_-]+)+(?![\\s\\S])"
### extensions/value
Type: JSON value
Reference: #/$defs/__schema30
Value: Arbitrary JSON; extension contents are not semantically checked by the core.
## Physical-sample selection
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
Connect collected specimens to the source records describing their custody.
Schema: urn:disclosureos:experimental:physical-sample-selection:0.1.0
Export: @disclosureos/schema/experimental/v2/physical-samples/schema
### kind
Type: string; required in containing object
Identifies the selection document.
const: "physical_sample_selection"
### schemaVersion
Type: string; required in containing object
The selection contract version.
const: "0.1.0"
### id
Type: string; required in containing object
An identifier for this selection.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### historyId
Type: string; required in containing object
The exact ID of the supplied claim history.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observationId
Type: string; required in containing object
The exact ID of its embedded observation.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### samples
Type: list of object; required in containing object
Specimen declarations, collection citations, custody handoffs and current holders. Only collected specimens are within this profile's scope.
minItems: 1
### samples[]
Type: object
Extra fields: Not allowed in this object
### samples[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### samples[].lineage
Type: string; required in containing object
enum: ["collected_specimen","derived_sample","mixture","unknown"]
### samples[].label
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### samples[].label/option-1
Type: object
Extra fields: Not allowed in this object
### samples[].label/option-1.state
Type: string; required in containing object
const: "known"
### samples[].label/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### samples[].label/option-2
Type: object
Extra fields: Not allowed in this object
### samples[].label/option-2.state
Type: string; required in containing object
const: "unknown"
### samples[].label/option-2.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### samples[].collection
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### samples[].collection/option-1
Type: object
Extra fields: Not allowed in this object
### samples[].collection/option-1.state
Type: string; required in containing object
const: "known"
### samples[].collection/option-1.collectedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### samples[].collection/option-1.recordRef
Type: string; required in containing object
pattern: "^source:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### samples[].collection/option-2
Type: object
Extra fields: Not allowed in this object
### samples[].collection/option-2.state
Type: string; required in containing object
const: "unknown"
### samples[].collection/option-2.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### samples[].custody
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### samples[].custody/option-1
Type: object
Extra fields: Not allowed in this object
### samples[].custody/option-1.state
Type: string; required in containing object
const: "documented"
### samples[].custody/option-1.transfers
Type: list of object; required in containing object
### samples[].custody/option-1.transfers[]
Type: object
Extra fields: Not allowed in this object
### samples[].custody/option-1.transfers[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### samples[].custody/option-1.transfers[].from
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### samples[].custody/option-1.transfers[].to
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### samples[].custody/option-1.transfers[].recordRef
Type: string; required in containing object
pattern: "^source:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### samples[].custody/option-2
Type: object
Extra fields: Not allowed in this object
### samples[].custody/option-2.state
Type: string; required in containing object
const: "unknown"
### samples[].custody/option-2.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### samples[].currentCustodian
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### samples[].currentCustodian/option-1
Type: object
Extra fields: Not allowed in this object
### samples[].currentCustodian/option-1.state
Type: string; required in containing object
const: "known"
### samples[].currentCustodian/option-1.holder
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### samples[].currentCustodian/option-1.recordRef
Type: string; required in containing object
pattern: "^source:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### samples[].currentCustodian/option-2
Type: object
Extra fields: Not allowed in this object
### samples[].currentCustodian/option-2.state
Type: string; required in containing object
const: "unknown"
### samples[].currentCustodian/option-2.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### samples[].catalogIdentifier
Type: string; optional
minLength: 1
pattern: "\\S"
# Observable terms (/v2/docs/reference/observables)
Published in npm 2.0.0-beta.4. A definition is not a finding that a characteristic occurred.
Implementation guide: /v2/docs/observables
## OC-T01: Apparent Hover
Term ID: apparent_hover. Category: technology.
An object appears to remain within a limited region above a surface for a stated interval, while the available observations do not identify its means of support. This term records the support question; it does not identify a propulsion mechanism.
Assess support using position relative to a declared reference frame, duration, environmental conditions and the available observations of possible lift or suspension. Failure to resolve a support mechanism is an observation limit, not a violation of mechanics.
Unidentified support is not anti-gravity: Not seeing wings, exhaust or downwash does not show that they were absent. Distance, resolution, wind, buoyancy, tethering, viewing geometry and platform motion require consideration. A Doppler radial-velocity measurement alone does not establish three-dimensional station keeping.
Detection signals: An account describes an object remaining above a surface without an identified means of support.; A timed sequence indicates limited displacement in a stated reference frame.; Recorded views or sensor channels do not resolve particular support features within stated limits.
Methods: Retain the original account, time interval and observer position.; Estimate position and motion with calibrated geometry; distinguish station keeping from apparent stillness caused by viewing geometry.; Compare visible, thermal, acoustic or other available observations with the specific support mechanisms being tested, recording coverage and sensitivity.
References: https://www.nasa.gov/wp-content/uploads/2023/09/uap-independent-study-team-final-report-0.pdf
## OC-T02: Abrupt Motion
Term ID: abrupt_motion. Category: technology.
An apparent or measured rapid change in motion, including a change in direction, speed or angular position. Any claim about physical acceleration must identify the quantity estimated and the observations used.
Angular motion, radial velocity and three-dimensional motion are different quantities. Physical acceleration estimates depend on geometry, timing, reference-frame motion and the analysis method; uncertainty and a stated comparison are needed to assess whether a result is unusual.
Apparent motion is not physical acceleration: A discontinuity in a track is not an instantaneous physical maneuver. A nearby platform accelerometer measures that platform, not the distant object. No universal acceleration threshold or biological tolerance is implied by this term.
Detection signals: An account describes sudden departure, stopping, reversal or a sharp turn.; A recorded angular position or other measured motion quantity changes over a short interval.; An analysis estimates a physical acceleration with declared assumptions and uncertainty.
Methods: Preserve timestamps, exposure duration, frame cadence and any missing intervals.; Estimate angular motion separately from physical motion and document range information or constraints.; Account for sensor/platform motion, tracking changes and processing before comparing derived accelerations with a stated reference.
References: https://www.nasa.gov/wp-content/uploads/2023/09/uap-independent-study-team-final-report-0.pdf
## OC-T03: Hypersonic Motion and Signature Discrepancy
Term ID: hypersonic_signature_discrepancy. Category: technology.
A proposed atmospheric trajectory at approximately Mach 5 or higher relative to the surrounding air, for which one or more specified signatures are reported or measured below an expected level. Retain the declared speed threshold and uncertainty; evaluate the speed estimate and each signature comparison separately.
Mach number depends on speed relative to the surrounding air and the local speed of sound. An expected acoustic, thermal, optical or other signature requires a stated model, environment, geometry and observation opportunity. A discrepancy is conditional on those assumptions.
Non-detection needs a defined observation opportunity: No recording, no sensor coverage and a measured non-detection are different states. A ground observer need not detect every atmospheric shock. The term does not require a visible plasma sheath and does not imply unknown physics.
Detection signals: A reported or derived speed is described as hypersonic under stated atmospheric conditions.; An observed signature is below a model prediction or detection threshold for a specified interval and channel.; A source reports the absence of a named signature, with observation conditions retained where available.
Methods: Record speed, reference frame, uncertainty, the declared hypersonic threshold, atmospheric conditions and the sound-speed model.; Record the predicted signature at the observing sensor, including propagation and geometric assumptions.; Compare calibrated observations, background levels and sensitivity with the prediction; retain separate results for each signature.
References: https://www.nasa.gov/wp-content/uploads/2023/09/uap-independent-study-team-final-report-0.pdf; https://www.grc.nasa.gov/www/BGH/mach.html
## OC-T04: Sensor Detection Discrepancy
Term ID: sensor_detection_discrepancy. Category: technology.
A difference or interruption in detections of a candidate object across times, sensors or observing modes that calls for comparison of the observations and their limits.
Detection depends on the signal at the sensor, background, coverage, configuration and processing. Comparing observations requires time alignment and a justified association between candidate detections. A discrepancy alone does not specify its cause.
Detection differences do not establish evasion: An instrument fault, missing file, occlusion or untested association must not become a finding of stealth, jamming or intentional evasion. Do not infer low radar cross-section from missing track data alone.
Detection signals: A candidate appears in one channel but has no associated detection in another.; A retained track contains acquisition, interruption or reacquisition intervals.; Detection strength or track behavior differs between instruments or processing settings.
Methods: Compare synchronized source data with fields of view, sensitivity, background and sensor settings.; Retain detection thresholds and raw/processed distinctions, including rejected returns where available.; Review diagnostics and association methods before interpreting an interruption as loss of the same physical object.
References: https://www.nasa.gov/wp-content/uploads/2023/09/uap-independent-study-team-final-report-0.pdf
## OC-T05: Apparent Medium Transition
Term ID: apparent_medium_transition. Category: technology.
An apparent or measured passage of a candidate object between media or across a declared environmental regime boundary, such as an air-water interface or a specified atmospheric-to-space boundary. Identify the conditions on each side, the boundary used and the continuity of the candidate.
A transition claim depends on positions relative to the boundary and on whether observations before and after it refer to the same object. Motion, shape and interface effects are separate quantities to compare; their absence is not built into this term.
A transition requires continuity and a located boundary: Appearance behind a horizon, into glare or below a resolved waterline is not sufficient to establish entry into water. Atmospheric-to-space travel has no single material surface: name the altitude or regime criterion when using that context. This term does not assert unchanged speed or absence of a splash.
Detection signals: An account describes entry into or exit from a named medium.; A continuous sequence appears to cross a located interface.; Separate observing systems report candidates on opposite sides of a boundary within a specified time interval.
Methods: Record the boundary location, observation geometry and any refraction or obscuration model.; Retain observations through the transition where available; mark gaps and ambiguous associations.; Compare before/after motion and any disturbance against separate stated expectations and detection limits.
References: https://www.nasa.gov/wp-content/uploads/2023/09/uap-independent-study-team-final-report-0.pdf
## OC-T06: Biological Changes Around an Event
Term ID: event_associated_biological_changes. Category: technology.
Reported symptoms or measured biological changes in a person, animal, plant or other organism in the context of an investigated event. Timing and any proposed exposure are recorded separately from a claim that the event caused the change.
Description of a symptom, clinical finding or environmental change is distinct from diagnosis and causal attribution. Assessments of an association require timelines, relevant baselines, potential exposures and consideration of alternative causes.
Timing does not establish causation: An injury description does not identify radiation or another exposure mechanism. A later site reading does not reconstruct a past dose by itself. This category is not a clinical diagnosis or a basis for treatment advice.
Detection signals: An account reports symptoms during or after an event.; A clinical or laboratory record documents a finding and its examination time.; A survey describes a change in vegetation or other organisms with a stated comparison.
Methods: Retain the original account and distinguish event time, symptom onset, examination time and reporting time.; Link authorized clinical or laboratory findings to their methods, reference ranges and uncertainty where applicable.; Record exposure measurements and comparison observations separately; evaluate causal explanations in attributed claims.
References: https://www.cdc.gov/field-epi-manual/php/chapters/analyze-interpret-data.html
## OC-B01: Molecular Complexity Pattern
Term ID: molecular_complexity_pattern. Category: biologics.
A measured or estimated molecular complexity and abundance pattern evaluated against a stated chemical comparison. The metric, estimation method and comparison conditions form part of the result.
Molecular assembly is one research approach to complexity and potential biosignatures. Its calculated index and experimentally estimated values depend on declared methods and assumptions. Interpretation as life, selection or engineering is a separate claim.
Research metric; origin and life not established: Assembly-theory biosignature interpretations are contested. A fixed assembly-index threshold is not a universal proof of life or technology. An index does not measure the actual historical synthesis pathway, and a proposed biosignature does not establish non-terrestrial origin.
Detection signals: A molecular structure receives a complexity value under a named algorithm.; Spectral data support a method-specific estimate of molecular complexity.; The distribution or abundance of identified molecules differs from a stated control or model.
Methods: Retain raw spectra, preprocessing, molecule/ion selection and calibration data.; Identify the complexity algorithm, software revision, uncertainty or bounds, and whether the value is calculated or inferred from spectra.; Use blanks, reference compounds and relevant abiotic, biological or synthetic comparisons; report abundance and detection limits separately.
References: https://www.nature.com/articles/s41467-021-23258-x; https://www.nature.com/articles/s41540-024-00403-y; https://science.nasa.gov/astrobiology/researchers/life-detection-resources/ladder-of-life-detection/
## OC-B02: Isotope Ratio Departure
Term ID: isotope_ratio_departure. Category: biologics.
An isotope ratio or pattern that differs from an explicitly identified reference material, population or model under a stated measurement and comparison method.
Isotope comparisons require a defined ratio or delta scale, calibration, sample preparation, uncertainty and relevant reference values. A departure from a selected reference is a result to explain, not an origin assignment.
A reference departure is not an origin: An unusual ratio is not by itself a non-terrestrial, biological or technological signature. Reference selection, fractionation, mixing, contamination and processing can change an interpretation. This material-analysis term does not establish that the sample is biological.
Detection signals: A measured isotope ratio differs from a named reference beyond a declared comparison criterion.; An isotopic pattern varies across portions or phases of a sample.; Independent measurements reproduce a stated departure within their uncertainty.
Methods: Identify the specimen and preparation history, isotope ratios, units or delta scales, and reference materials.; Report blanks, correction methods, interference checks, mass-bias treatment and uncertainty.; Compare replicated results and relevant natural, industrial or laboratory alternatives before evaluating provenance claims.
References: https://www.nist.gov/publications/value-assignment-and-uncertainty-estimation-selected-light-stable-isotope-reference; https://science.nasa.gov/astrobiology/researchers/life-detection-resources/ladder-of-life-detection/
## OC-B03: Molecular Composition Difference
Term ID: molecular_composition_difference. Category: biologics.
A molecular structure, composition or chemical behavior that differs from a specified biochemical reference. The observation can concern a material whose biological status is unresolved.
Structural and chemical measurements can support comparisons without establishing that a material is living. Alternative molecular systems can also be synthesized, so unfamiliar chemistry alone does not identify a biological or non-terrestrial source.
Unfamiliar chemistry does not establish biology: Failure of a DNA amplification or sequencing protocol does not establish alternative genetics. Bulk elemental composition does not establish a molecular scaffold. The comparison must allow known biochemical diversity and synthetic chemistry; no four-base or twenty-amino-acid rule is universal proof of origin.
Detection signals: Structural analysis identifies a polymer backbone, building block or molecular arrangement outside the stated comparison.; Measured chirality or composition differs from a specified reference sample or range.; A reproducible chemical behavior is not explained by the declared reference model.
Methods: Use complementary structural or compositional measurements appropriate to the material and retain identification confidence.; Record preparation, blanks, reference compounds and contamination controls.; Test claims of biological function separately from chemical identity; document assay scope and failures without turning them into absence findings.
References: https://pubmed.ncbi.nlm.nih.gov/30792304/; https://science.nasa.gov/astrobiology/researchers/life-detection-resources/ladder-of-life-detection/
## OC-B04: Unresolved Sequence Relationship
Term ID: unresolved_sequence_relationship. Category: biologics.
A retained nucleic-acid or protein sequence for which a specified search or phylogenetic analysis does not establish a relationship within its declared reference set and acceptance criteria.
Sequence matching is conditional on data quality, database contents and analysis settings. An unresolved relationship is a bounded search result. It does not establish that a sequence is outside terrestrial biology or has an independent evolutionary origin.
A limited search is not exclusion from the tree of life: No BLAST match is not zero homology to all life. Short, damaged, contaminated or misassembled sequences and limited database coverage can leave a result unresolved. Non-DNA/RNA chemistry belongs in a separate molecular-characterization entry unless an applicable sequence representation is defined.
Detection signals: A quality-reviewed sequence has no reported match meeting a declared threshold.; Alternative analyses yield conflicting placements for the same retained sequence.; Available marker coverage is insufficient for a stated taxonomic or phylogenetic assignment.
Methods: Retain reads, quality measures, assembly provenance, extraction blanks and contamination checks.; Name the database snapshot, software revision, filters, masking, scoring and acceptance thresholds.; Report alignment coverage and alternative results; distinguish database similarity searches from phylogenetic inference and repeat against suitable comparison sets.
References: https://blast.ncbi.nlm.nih.gov/doc/blast-help/FAQ.html; https://blast.ncbi.nlm.nih.gov/doc/blast-topics/blastsearchparams.html; https://link.springer.com/article/10.1186/s12915-014-0087-z
## OC-B05: Unresolved Morphological Characteristics
Term ID: unresolved_morphological_characteristics. Category: biologics.
Observed form or internal structure that has not been assigned within a stated anatomical, cellular or other morphological comparison. Record the features and comparison separately from any identification of the specimen.
Morphological examination characterizes structures at a stated scale and resolution. Classification also depends on specimen condition, preparation, comparison coverage and independent observations. Unfamiliar form alone does not establish biological status or evolutionary origin.
An unresolved form is not a new lineage: Appearance alone can be affected by preservation, preparation, deformation, assembly or imaging artifacts. A resemblance to cells, organs or a body plan does not by itself establish those structures or an independent lineage.
Detection signals: An examination describes a feature absent from the declared comparison material.; Imaging methods or examiners produce unresolved differences in structural identification.; Available specimen condition or image resolution prevents a proposed identification.
Methods: Retain specimen provenance, scale, orientation, preparation and original images.; Describe visible features before assigning taxonomic or functional labels.; Compare appropriate reference specimens and complementary imaging or composition analyses; document preservation artifacts and alternative reconstructions.
References: https://science.nasa.gov/astrobiology/researchers/life-detection-resources/ladder-of-life-detection/
## OC-B06: Reported Biological Interaction
Term ID: reported_biological_interaction. Category: biologics.
An attributed account or documented observation of apparent contact, communication or directed action involving a person, animal or other organism during an investigated event. Retain the reported action separately from findings about an agent, intent or cause.
Testimony can establish what a source reported. Recordings, physical traces and clinical or veterinary findings can address specific parts of that account through their own methods. Similarity between reports or temporal association alone does not establish a shared agent or mechanism.
Reported interaction; agency not established: This category includes testimony whose external circumstances are unresolved. It does not confirm an abduction, communication, intervention, intelligence or intent. A medical or psychological assessment is not a truth detector; an unexplained injury or animal tissue change does not by itself identify a responsible agent.
Detection signals: A source describes apparent contact, communication, restraint or directed behavior.; A recording documents a specified interaction for later interpretation.; An examination records a physical finding alleged to be related to an interaction, with the attribution preserved.
Methods: Retain original wording, interview context, chronology and account revisions, including how the account was elicited.; Link independently collected recordings or physical findings to precise source passages without treating all parts of the account as corroborated.; Evaluate physical traces with appropriate forensic, clinical or veterinary methods and record alternative explanations; keep any agency assessment separate.
References: https://www.cdc.gov/field-epi-manual/php/chapters/analyze-interpret-data.html
# Origin terms (/v2/docs/reference/origins)
Published in npm 2.0.0-beta.4, including the shared catalog-snapshot and vocabulary-binding APIs. Catalog membership does not establish an origin. Testability is a framework designation, not a case finding or a claim of scientific consensus.
Adapted from Col. Karl Nell (U.S. Army, ret.), Proposed Taxonomy of UAP Origin Hypotheses, Sol Foundation Symposium, Stanford University, November 2023.
Implementation guide: /v2/docs/origins
Shared fields: /v2/docs/reference/vocabulary
## 1: Physical
Theories attributing UAP to tangible, material objects or phenomena.
Parent: none (family root). Children: 1.1, 1.2, 1.3. Depth: 0.
Domain: physical. Marked scientifically testable in this framework.
## 1.1: Intradimensional
Manifestations from dimensions/realms within our own physical reality.
Parent: 1. Children: 1.1.1, 1.1.2, 1.1.3. Depth: 1.
Domain: physical. Marked scientifically testable in this framework.
## 1.1.1: Prosaic
Ordinary or conventional explanations for observed phenomena.
Parent: 1.1. Children: 1.1.1.1, 1.1.1.2. Depth: 2.
Domain: physical. Marked scientifically testable in this framework.
## 1.1.1.1: Natural
Atmospheric, celestial, or geological phenomena misidentified as anomalous.
Parent: 1.1.1. Children: 1.1.1.1.1, 1.1.1.1.2, 1.1.1.1.3, 1.1.1.1.4. Depth: 3.
Domain: physical. Marked scientifically testable in this framework.
## 1.1.1.1.1: Optical Artifact / Illusion
Lens flares, reflections, mirages, temperature inversions, or other optical effects.
Parent: 1.1.1.1. Children: none. Depth: 4.
Domain: physical. Marked scientifically testable in this framework.
## 1.1.1.1.2: Celestial
Stars, planets, meteors, satellites, or space debris misidentified.
Parent: 1.1.1.1. Children: none. Depth: 4.
Domain: physical. Marked scientifically testable in this framework.
## 1.1.1.1.3: Meteorological
Ball lightning, lenticular clouds, sprites, or other atmospheric phenomena.
Parent: 1.1.1.1. Children: none. Depth: 4.
Domain: physical. Marked scientifically testable in this framework.
## 1.1.1.1.4: Geophysical
Earthquake lights, piezoelectric effects, or volcanic phenomena.
Parent: 1.1.1.1. Children: none. Depth: 4.
Domain: physical. Marked scientifically testable in this framework.
## 1.1.1.2: Human
Human activities or technologies misidentified as anomalous.
Parent: 1.1.1. Children: 1.1.1.2.1, 1.1.1.2.2, 1.1.1.2.3, 1.1.1.2.4. Depth: 3.
Domain: physical. Marked scientifically testable in this framework.
## 1.1.1.2.1: Governmental
Military aircraft, drones, or test vehicles from known government programs.
Parent: 1.1.1.2. Children: none. Depth: 4.
Domain: physical. Marked scientifically testable in this framework.
## 1.1.1.2.2: Extra-Governmental
Black budget programs, Special Access Programs (SAPs), or unacknowledged projects.
Parent: 1.1.1.2. Children: none. Depth: 4.
Domain: physical. Marked scientifically testable in this framework.
## 1.1.1.2.3: Inter-governmental
Foreign adversary technology or multinational classified programs.
Parent: 1.1.1.2. Children: none. Depth: 4.
Domain: physical. Marked scientifically testable in this framework.
## 1.1.1.2.4: Private / Commercial
Commercial drones, private aerospace ventures, or civilian technology.
Parent: 1.1.1.2. Children: none. Depth: 4.
Domain: physical. Marked scientifically testable in this framework.
## 1.1.2: Cryptoterrestrial
Hidden Earth-based civilizations or entities operating outside known history.
Parent: 1.1. Children: 1.1.2.1, 1.1.2.2, 1.1.2.3, 1.1.2.4. Depth: 2.
Domain: physical. Marked scientifically testable in this framework.
Also known as: CTH
## 1.1.2.1: Ancient / Proto-Human Survival
Remnant populations of earlier hominid species or ancient civilizations that survived in isolation.
Parent: 1.1.2. Children: none. Depth: 3.
Domain: physical. Marked scientifically testable in this framework.
## 1.1.2.2: Breakaway Civilization
Human splinter groups that developed advanced technology in secret.
Parent: 1.1.2. Children: none. Depth: 3.
Domain: physical. Marked scientifically testable in this framework.
## 1.1.2.3: Cryptids / Humanoids
Non-human intelligent entities indigenous to Earth but outside the known tree of life.
Parent: 1.1.2. Children: none. Depth: 3.
Domain: physical. Marked scientifically testable in this framework.
## 1.1.2.4: Stranded "Gods"
Entities from ancient mythological accounts interpreted as literal stranded visitors.
Parent: 1.1.2. Children: none. Depth: 3.
Domain: physical. Marked scientifically testable in this framework.
## 1.1.3: Extraterrestrial
Intelligence visiting from other locations in spacetime.
Parent: 1.1. Children: 1.1.3.1, 1.1.3.2, 1.1.3.3, 1.1.3.4. Depth: 2.
Domain: physical. Marked scientifically testable in this framework.
Also known as: ETH
## 1.1.3.1: Solar System
Intelligence originating from elsewhere in our solar system.
Parent: 1.1.3. Children: none. Depth: 3.
Domain: physical. Marked scientifically testable in this framework.
## 1.1.3.2: Interstellar
Intelligence from other star systems within our galaxy.
Parent: 1.1.3. Children: none. Depth: 3.
Domain: physical. Marked scientifically testable in this framework.
## 1.1.3.3: Intergalactic
Intelligence from other galaxies.
Parent: 1.1.3. Children: none. Depth: 3.
Domain: physical. Marked scientifically testable in this framework.
## 1.1.3.4: Unknown Region of Space-Time
Intelligence from an uncharacterized region of our physical universe.
Parent: 1.1.3. Children: none. Depth: 3.
Domain: physical. Marked scientifically testable in this framework.
## 1.2: Extradimensional
UAPs from other dimensions, parallel universes, or realms beyond our physical reality.
Parent: 1. Children: 1.2.1, 1.2.2. Depth: 1.
Domain: physical. Marked scientifically testable in this framework.
## 1.2.1: 3-D Entity From Hyperspace
Entities projecting into our 3+1 dimensional spacetime from higher dimensions.
Parent: 1.2. Children: 1.2.1.1, 1.2.1.2, 1.2.1.3. Depth: 2.
Domain: physical. Marked scientifically testable in this framework.
## 1.2.1.1: Compactified Dimensions
Entities from string theory / Kaluza-Klein compactified extra dimensions.
Parent: 1.2.1. Children: none. Depth: 3.
Domain: physical. Marked scientifically testable in this framework.
## 1.2.1.2: Hyperspace "Bulk"
Entities from the bulk space of Randall-Sundrum brane models.
Parent: 1.2.1. Children: none. Depth: 3.
Domain: physical. Marked scientifically testable in this framework.
## 1.2.1.3: Disconnected Hyperspace
Entities from higher-dimensional spaces not connected to our brane.
Parent: 1.2.1. Children: none. Depth: 3.
Domain: physical. Marked scientifically testable in this framework.
## 1.2.2: Hyper-D "Brane"
Brane interactions from string/M-theory producing observable effects.
Parent: 1.2. Children: 1.2.2.1, 1.2.2.2. Depth: 2.
Domain: physical. Marked scientifically testable in this framework.
## 1.2.2.1: Projection / "Shadow"
Lower-dimensional projections of higher-dimensional objects.
Parent: 1.2.2. Children: 1.2.2.1.1, 1.2.2.1.2, 1.2.2.1.3. Depth: 3.
Domain: physical. Marked scientifically testable in this framework.
## 1.2.2.1.1: 0-to-2 Dimensional
Point or plane-like projections from higher dimensions.
Parent: 1.2.2.1. Children: none. Depth: 4.
Domain: physical. Marked scientifically testable in this framework.
## 1.2.2.1.2: 3-Dimensional
Full volumetric projections appearing as solid objects.
Parent: 1.2.2.1. Children: none. Depth: 4.
Domain: physical. Marked scientifically testable in this framework.
## 1.2.2.1.3: Fractal Dimensional
Non-integer dimensional projections with fractal geometry.
Parent: 1.2.2.1. Children: none. Depth: 4.
Domain: physical. Marked scientifically testable in this framework.
## 1.2.2.2: ≤ 3-D "Avatar"
Controlled projections or constructs operating as proxies.
Parent: 1.2.2. Children: 1.2.2.2.1, 1.2.2.2.2, 1.2.2.2.3. Depth: 3.
Domain: physical. Marked scientifically testable in this framework.
## 1.2.2.2.1: Hologram / "Telepresence"
Remote presence via holographic or light-based projection.
Parent: 1.2.2.2. Children: none. Depth: 4.
Domain: physical. Marked scientifically testable in this framework.
## 1.2.2.2.2: Automaton
Self-operating mechanical or energetic construct.
Parent: 1.2.2.2. Children: none. Depth: 4.
Domain: physical. Marked scientifically testable in this framework.
## 1.2.2.2.3: Artificial Lifeform
Engineered biological or hybrid entity operating as a proxy.
Parent: 1.2.2.2. Children: none. Depth: 4.
Domain: physical. Marked scientifically testable in this framework.
## 1.3: Interdimensional
UAPs traversing between different dimensions or realities.
Parent: 1. Children: 1.3.1, 1.3.2, 1.3.3. Depth: 1.
Domain: physical. Marked scientifically testable in this framework.
## 1.3.1: Multiverse
Entities or phenomena crossing between parallel universes.
Parent: 1.3. Children: 1.3.1.1, 1.3.1.2, 1.3.1.3, 1.3.1.4. Depth: 2.
Domain: physical. Marked scientifically testable in this framework.
## 1.3.1.1: Portal / Wormhole
Traversal via Einstein-Rosen bridges or manufactured gateways.
Parent: 1.3.1. Children: none. Depth: 3.
Domain: physical. Marked scientifically testable in this framework.
## 1.3.1.2: Colliding Universe(s)
Phenomena from brane collision events (ekpyrotic cosmology).
Parent: 1.3.1. Children: none. Depth: 3.
Domain: physical. Marked scientifically testable in this framework.
## 1.3.1.3: Parallel Universe(s)
Entities from parallel but non-interacting universe branches.
Parent: 1.3.1. Children: none. Depth: 3.
Domain: physical. Marked scientifically testable in this framework.
## 1.3.1.4: QFT "Many Worlds"
Quantum-mechanical many-worlds interpretation producing observable crossover.
Parent: 1.3.1. Children: none. Depth: 3.
Domain: physical. Marked scientifically testable in this framework.
## 1.3.2: Time Travel
Entities or vehicles traversing temporal dimensions.
Parent: 1.3. Children: 1.3.2.1, 1.3.2.2, 1.3.2.3, 1.3.2.4, 1.3.2.5. Depth: 2.
Domain: physical. Marked scientifically testable in this framework.
## 1.3.2.1: Humans From Future
Time-traveling humans from our future timeline.
Parent: 1.3.2. Children: none. Depth: 3.
Domain: physical. Marked scientifically testable in this framework.
## 1.3.2.2: Humans From Past
Time-traveling humans from our past (advanced pre-history).
Parent: 1.3.2. Children: none. Depth: 3.
Domain: physical. Marked scientifically testable in this framework.
## 1.3.2.3: Humans From Alternate Timeline
Humans from divergent timeline branches.
Parent: 1.3.2. Children: none. Depth: 3.
Domain: physical. Marked scientifically testable in this framework.
## 1.3.2.4: Non-Human Entity
Non-human intelligence traversing time dimensions.
Parent: 1.3.2. Children: none. Depth: 3.
Domain: physical. Marked scientifically testable in this framework.
## 1.3.2.5: Additional Time Dimension(s)
Traversal via hypothetical extra temporal dimensions beyond our single time axis.
Parent: 1.3.2. Children: none. Depth: 3.
Domain: physical. Marked scientifically testable in this framework.
## 1.3.3: Scale Invariance
Phenomena emerging from scale-dependent physics or quantum-cosmological effects.
Parent: 1.3. Children: 1.3.3.1, 1.3.3.2, 1.3.3.3, 1.3.3.4, 1.3.3.5. Depth: 2.
Domain: physical. Marked scientifically testable in this framework.
## 1.3.3.1: Macro Quantum Fluctuation
Macroscopic manifestation of quantum vacuum fluctuations.
Parent: 1.3.3. Children: none. Depth: 3.
Domain: physical. Marked scientifically testable in this framework.
## 1.3.3.2: Distance Recursion
Self-similar structure at different scales producing observable anomalies.
Parent: 1.3.3. Children: none. Depth: 3.
Domain: physical. Marked scientifically testable in this framework.
## 1.3.3.3: Pan-Galactic Entanglement
Non-local quantum entanglement effects at galactic scales.
Parent: 1.3.3. Children: none. Depth: 3.
Domain: physical. Marked scientifically testable in this framework.
## 1.3.3.4: Unobserved "Vibratory Modes"
Hidden vibrational modes of spacetime not yet detected by instruments.
Parent: 1.3.3. Children: none. Depth: 3.
Domain: physical. Marked scientifically testable in this framework.
## 1.3.3.5: Conformal Cyclic Cosmology
Signals or entities from previous cosmic aeons (Penrose CCC).
Parent: 1.3.3. Children: none. Depth: 3.
Domain: physical. Marked scientifically testable in this framework.
## 2: Psychosocial
Theories attributing UAP to psychological, perceptual, and sociological factors.
Parent: none (family root). Children: 2.1, 2.2, 2.3. Depth: 0.
Domain: psychosocial. Marked scientifically testable in this framework.
Also known as: PSH
## 2.1: Sociological
Social dynamics, group phenomena, and cultural factors producing UAP reports.
Parent: 2. Children: 2.1.1, 2.1.2, 2.1.3, 2.1.4, 2.1.5. Depth: 1.
Domain: psychosocial. Marked scientifically testable in this framework.
## 2.1.1: Hypnosis
Hypnotic suggestion producing false UAP memories or experiences.
Parent: 2.1. Children: none. Depth: 2.
Domain: psychosocial. Marked scientifically testable in this framework.
## 2.1.2: Mass Hysteria
Collective delusion or social contagion producing shared UAP reports.
Parent: 2.1. Children: none. Depth: 2.
Domain: psychosocial. Marked scientifically testable in this framework.
## 2.1.3: Memetic Virus
Self-propagating cultural narratives that generate UAP reports.
Parent: 2.1. Children: none. Depth: 2.
Domain: psychosocial. Marked scientifically testable in this framework.
## 2.1.4: Conditioning / Disinformation
Deliberate manipulation, propaganda, or psyops creating UAP narratives.
Parent: 2.1. Children: none. Depth: 2.
Domain: psychosocial. Marked scientifically testable in this framework.
## 2.1.5: Hoax
Deliberate fabrication for attention, profit, or amusement.
Parent: 2.1. Children: none. Depth: 2.
Domain: psychosocial. Marked scientifically testable in this framework.
## 2.2: Psychological
Individual psychological processes producing UAP perceptions.
Parent: 2. Children: 2.2.1, 2.2.2, 2.2.3, 2.2.4, 2.2.5. Depth: 1.
Domain: psychosocial. Marked scientifically testable in this framework.
## 2.2.1: False Belief / Misinterpretation
Cognitive bias or perceptual error leading to misidentification.
Parent: 2.2. Children: none. Depth: 2.
Domain: psychosocial. Marked scientifically testable in this framework.
## 2.2.2: Fallible / Screen Memory
False or constructed memories obscuring actual events.
Parent: 2.2. Children: none. Depth: 2.
Domain: psychosocial. Marked scientifically testable in this framework.
## 2.2.3: Psychosomatic Disorder
Physical symptoms produced by psychological distress attributed to UAP.
Parent: 2.2. Children: none. Depth: 2.
Domain: psychosocial. Marked scientifically testable in this framework.
## 2.2.4: Psychosis / Hallucination
Clinical psychiatric conditions producing UAP perceptions.
Parent: 2.2. Children: none. Depth: 2.
Domain: psychosocial. Marked scientifically testable in this framework.
## 2.2.5: Collective Unconscious
Jungian archetypes manifesting as UAP experiences across cultures.
Parent: 2.2. Children: none. Depth: 2.
Domain: psychosocial. Marked scientifically testable in this framework.
## 2.3: Neurological
Neurobiological factors producing anomalous perceptions.
Parent: 2. Children: 2.3.1, 2.3.2, 2.3.3, 2.3.4, 2.3.5. Depth: 1.
Domain: psychosocial. Marked scientifically testable in this framework.
## 2.3.1: Psychedelics / Pharmacology
Drug-induced altered states producing UAP-like perceptions.
Parent: 2.3. Children: none. Depth: 2.
Domain: psychosocial. Marked scientifically testable in this framework.
## 2.3.2: Pathology / Trauma
Brain injury, disease, or trauma producing anomalous perceptions.
Parent: 2.3. Children: none. Depth: 2.
Domain: psychosocial. Marked scientifically testable in this framework.
## 2.3.3: Neurodivergence
Atypical neural architecture producing enhanced or anomalous perception.
Parent: 2.3. Children: none. Depth: 2.
Domain: psychosocial. Marked scientifically testable in this framework.
## 2.3.4: High Intuition / Functioning
Heightened perceptual sensitivity or cognitive function.
Parent: 2.3. Children: none. Depth: 2.
Domain: psychosocial. Marked scientifically testable in this framework.
## 2.3.5: "Alien" Implants
Neurological effects attributed to foreign objects or stimulation.
Parent: 2.3. Children: none. Depth: 2.
Domain: psychosocial. Marked scientifically testable in this framework.
## 3: Metaphysical
Theories with origins beyond conventional scientific understanding.
Parent: none (family root). Children: 3.1, 3.2, 3.3. Depth: 0.
Domain: metaphysical. Not marked scientifically testable in this framework.
Also known as: MPH
## 3.1: Paranormal
Phenomena involving extraordinary human potential or non-material entities.
Parent: 3. Children: 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.1.6. Depth: 1.
Domain: metaphysical. Marked scientifically testable in this framework.
## 3.1.1: Psychotronics / Extraordinary Potential
Latent human psychic abilities (telekinesis, remote viewing) producing observable effects.
Parent: 3.1. Children: none. Depth: 2.
Domain: metaphysical. Marked scientifically testable in this framework.
## 3.1.2: NDE / OBE
Near-death or out-of-body experiences suggesting non-physical consciousness.
Parent: 3.1. Children: none. Depth: 2.
Domain: metaphysical. Marked scientifically testable in this framework.
## 3.1.3: Disembodied Spirits / Consciousness
Non-physical conscious entities interacting with physical reality.
Parent: 3.1. Children: none. Depth: 2.
Domain: metaphysical. Marked scientifically testable in this framework.
## 3.1.4: Incorporeal / Bosonic Lifeforms
Entities composed of force-carrier particles or non-baryonic matter.
Parent: 3.1. Children: none. Depth: 2.
Domain: metaphysical. Marked scientifically testable in this framework.
## 3.1.5: Mediumship / Possession
External entities communicating through or controlling human hosts.
Parent: 3.1. Children: none. Depth: 2.
Domain: metaphysical. Marked scientifically testable in this framework.
## 3.1.6: New Physics
Undiscovered physical laws that explain anomalous phenomena.
Parent: 3.1. Children: none. Depth: 2.
Domain: metaphysical. Marked scientifically testable in this framework.
## 3.2: Occult
Hidden knowledge traditions and reality models outside mainstream science.
Parent: 3. Children: 3.2.1, 3.2.2, 3.2.3, 3.2.4, 3.2.5, 3.2.6. Depth: 1.
Domain: metaphysical. Not marked scientifically testable in this framework.
## 3.2.1: Hidden Powers of Nature
Esoteric natural forces not yet recognized by science.
Parent: 3.2. Children: none. Depth: 2.
Domain: metaphysical. Not marked scientifically testable in this framework.
## 3.2.2: Ascended "Masters"
Spiritually evolved beings guiding humanity from higher planes.
Parent: 3.2. Children: none. Depth: 2.
Domain: metaphysical. Not marked scientifically testable in this framework.
## 3.2.3: "Maya" / Sensory Delusion
Physical reality as fundamental illusion (Vedantic/Buddhist ontology).
Parent: 3.2. Children: none. Depth: 2.
Domain: metaphysical. Not marked scientifically testable in this framework.
## 3.2.4: Artificial Reality / Matrix Simulation
Reality as a computational simulation with UAP as glitches or features.
Parent: 3.2. Children: none. Depth: 2.
Domain: metaphysical. Marked scientifically testable in this framework.
## 3.2.5: Altered / Alternate Reality
Consensus reality as one of many equally valid experiential frames.
Parent: 3.2. Children: none. Depth: 2.
Domain: metaphysical. Not marked scientifically testable in this framework.
## 3.2.6: Absolute World of Archetypes
Platonic realm of forms manifesting in physical experience.
Parent: 3.2. Children: none. Depth: 2.
Domain: metaphysical. Not marked scientifically testable in this framework.
## 3.3: Transcendental
Religious, spiritual, and theological explanations for UAP.
Parent: 3. Children: 3.3.1, 3.3.2, 3.3.3, 3.3.4, 3.3.5, 3.3.6. Depth: 1.
Domain: metaphysical. Not marked scientifically testable in this framework.
## 3.3.1: "Gaia" / Nature Spirits
Animistic intelligence of the Earth or natural world.
Parent: 3.3. Children: none. Depth: 2.
Domain: metaphysical. Not marked scientifically testable in this framework.
## 3.3.2: Angelic Beings
Benevolent spiritual entities from monotheistic traditions.
Parent: 3.3. Children: none. Depth: 2.
Domain: metaphysical. Not marked scientifically testable in this framework.
## 3.3.3: "Djinn" / Neutral Powers
Morally neutral spiritual entities (Islamic jinn, fae folk, trickster spirits).
Parent: 3.3. Children: none. Depth: 2.
Domain: metaphysical. Not marked scientifically testable in this framework.
## 3.3.4: Demonic Forces
Malevolent spiritual entities from various religious traditions.
Parent: 3.3. Children: none. Depth: 2.
Domain: metaphysical. Not marked scientifically testable in this framework.
## 3.3.5: Hierarchy of Being
Neo-Platonic great chain of being with UAP as higher-order entities.
Parent: 3.3. Children: none. Depth: 2.
Domain: metaphysical. Not marked scientifically testable in this framework.
## 3.3.6: Emanations of Godhead
Direct manifestations of divine creative force or cosmic consciousness.
Parent: 3.3. Children: none. Depth: 2.
Domain: metaphysical. Not marked scientifically testable in this framework.
# Observation fields (/v2/docs/reference/records)
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
Extra fields: Not allowed at the observation root. Use extensions for namespaced additional data.
## Observation
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
The factual record, from original sources to declared measurements.
Schema: urn:disclosureos:experimental:observation:0.1.0
Export: @disclosureos/records/experimental/v2/observation/schema
### kind
Type: string; required in containing object
Identifies this document as an observation.
const: "observation"
### schemaVersion
Type: string; required in containing object
The observation contract version, separate from the npm package version.
const: "0.1.0"
### id
Type: string; required in containing object
A stable identifier for this observation.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### status
Type: string; required in containing object
Where the record is in its publication lifecycle.
enum: ["draft","published","withdrawn"]
### createdAt
Type: string; required in containing object
When this record was created, separate from the time of the observation.
### createdAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### createdAt/constraint-2
Type: value
pattern: "^(?!0000)"
### createdAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### createdAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### updatedAt
Type: string; required in containing object
When this record was last updated. It cannot precede creation.
### updatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### updatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### updatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### updatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### summary
Type: string; optional
An optional description of the observation.
minLength: 1
pattern: "\\S"
### eventTime
Type: choice; required in containing object
When the observation occurred. Preserve known, approximate, unknown or redacted states.
Choose: Exactly one of the alternatives below
### eventTime/option-1
Type: object
Extra fields: Not allowed in this object
### eventTime/option-1.state
Type: string; required in containing object
const: "known"
### eventTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### eventTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### eventTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### eventTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### eventTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### eventTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### eventTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### eventTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### eventTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### eventTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### eventTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### eventTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### eventTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### eventTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### eventTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### eventTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### eventTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### eventTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### eventTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### eventTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### eventTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### eventTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### eventTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### eventTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### eventTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### eventTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### eventTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### eventTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### eventTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### eventTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### eventTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### eventTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### eventTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### eventTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### eventTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### eventTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### eventTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### eventTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### eventTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### eventTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### eventTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### eventTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### eventTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### eventTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### eventTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### eventTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### eventTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### eventTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### eventTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### eventTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### eventTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### eventTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### eventTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### eventTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### eventTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### eventTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### eventTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### eventTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### eventTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### eventTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### eventTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### eventTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### eventTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### eventTime/option-1.sourceRefs
Type: list of string; required in containing object
minItems: 1
### eventTime/option-1.sourceRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### eventTime/option-1.selection
Type: object; optional
Extra fields: Not allowed in this object
### eventTime/option-1.selection.assertionRef
Type: string; required in containing object
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### eventTime/option-1.selection.consideredAssertionRefs
Type: list of string; required in containing object
minItems: 1
### eventTime/option-1.selection.consideredAssertionRefs[]
Type: string
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### eventTime/option-1.selection.methodRef
Type: string; required in containing object
pattern: "^method:[^\\s:]+(?![\\s\\S])"
### eventTime/option-1.selection.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### eventTime/option-1.selection.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### eventTime/option-1.selection.evaluatedAt
Type: string; required in containing object
### eventTime/option-1.selection.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### eventTime/option-1.selection.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### eventTime/option-1.selection.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### eventTime/option-1.selection.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### eventTime/option-1.selection.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### eventTime/option-1.uncertainty
Type: choice; optional
Choose: Exactly one of the alternatives below
### eventTime/option-1.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### eventTime/option-1.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### eventTime/option-1.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### eventTime/option-1.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### eventTime/option-1.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### eventTime/option-1.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### eventTime/option-1.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### eventTime/option-1.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### eventTime/option-1.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### eventTime/option-1.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### eventTime/option-1.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### eventTime/option-1.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### eventTime/option-1.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### eventTime/option-1.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### eventTime/option-1.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### eventTime/option-1.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### eventTime/option-1.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### eventTime/option-1.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### eventTime/option-1.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### eventTime/option-1.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### eventTime/option-1.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### eventTime/option-1.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### eventTime/option-1.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### eventTime/option-2
Type: object
Extra fields: Not allowed in this object
### eventTime/option-2.state
Type: string; required in containing object
const: "approximate"
### eventTime/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### eventTime/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### eventTime/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### eventTime/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### eventTime/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### eventTime/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### eventTime/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### eventTime/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### eventTime/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### eventTime/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### eventTime/option-2.value/option-1/option-3.value
Type: string; required in containing object
### eventTime/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### eventTime/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### eventTime/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### eventTime/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### eventTime/option-2.value/option-1/option-4.value
Type: string; required in containing object
### eventTime/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### eventTime/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### eventTime/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### eventTime/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### eventTime/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### eventTime/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### eventTime/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### eventTime/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### eventTime/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### eventTime/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### eventTime/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### eventTime/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### eventTime/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### eventTime/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### eventTime/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### eventTime/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### eventTime/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### eventTime/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### eventTime/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### eventTime/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### eventTime/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### eventTime/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### eventTime/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### eventTime/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### eventTime/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### eventTime/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### eventTime/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### eventTime/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### eventTime/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### eventTime/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### eventTime/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### eventTime/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### eventTime/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### eventTime/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### eventTime/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### eventTime/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### eventTime/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### eventTime/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### eventTime/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### eventTime/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### eventTime/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### eventTime/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### eventTime/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### eventTime/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### eventTime/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### eventTime/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### eventTime/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### eventTime/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### eventTime/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### eventTime/option-2.selection
Type: object; optional
Extra fields: Not allowed in this object
### eventTime/option-2.selection.assertionRef
Type: string; required in containing object
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### eventTime/option-2.selection.consideredAssertionRefs
Type: list of string; required in containing object
minItems: 1
### eventTime/option-2.selection.consideredAssertionRefs[]
Type: string
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### eventTime/option-2.selection.methodRef
Type: string; required in containing object
pattern: "^method:[^\\s:]+(?![\\s\\S])"
### eventTime/option-2.selection.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### eventTime/option-2.selection.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### eventTime/option-2.selection.evaluatedAt
Type: string; required in containing object
### eventTime/option-2.selection.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### eventTime/option-2.selection.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### eventTime/option-2.selection.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### eventTime/option-2.selection.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### eventTime/option-2.selection.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### eventTime/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### eventTime/option-2.uncertainty
Type: choice; optional
Choose: Exactly one of the alternatives below
### eventTime/option-2.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### eventTime/option-2.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### eventTime/option-2.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### eventTime/option-2.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### eventTime/option-2.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### eventTime/option-2.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### eventTime/option-2.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### eventTime/option-2.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### eventTime/option-2.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### eventTime/option-2.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### eventTime/option-2.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### eventTime/option-2.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### eventTime/option-2.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### eventTime/option-2.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### eventTime/option-2.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### eventTime/option-2.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### eventTime/option-2.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### eventTime/option-2.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### eventTime/option-2.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### eventTime/option-2.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### eventTime/option-2.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### eventTime/option-2.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### eventTime/option-2.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### eventTime/option-3
Type: object
Extra fields: Not allowed in this object
### eventTime/option-3.state
Type: string; required in containing object
const: "unknown"
### eventTime/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### eventTime/option-4
Type: object
Extra fields: Not allowed in this object
### eventTime/option-4.state
Type: string; required in containing object
const: "redacted"
### eventTime/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position
Type: choice; required in containing object
Where the observation occurred, with its reference frame and uncertainty when supplied.
Choose: Exactly one of the alternatives below
### position/option-1
Type: object
Extra fields: Not allowed in this object
### position/option-1.state
Type: string; required in containing object
const: "known"
### position/option-1.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### position/option-1.value/option-1
Type: object
Extra fields: Not allowed in this object
### position/option-1.value/option-1.latitude
Type: number; required in containing object
minimum: -90
maximum: 90
### position/option-1.value/option-1.longitude
Type: number; required in containing object
minimum: -180
maximum: 180
### position/option-1.value/option-1.kind
Type: string; required in containing object
const: "geodetic"
### position/option-1.value/option-1.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-1.value/option-1.altitude
Type: object; optional
Extra fields: Not allowed in this object
### position/option-1.value/option-1.altitude.value
Type: number; required in containing object
### position/option-1.value/option-1.altitude.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-1.value/option-1.altitude.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### position/option-1.value/option-1.altitude.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### position/option-1.value/option-1.altitude.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### position/option-1.value/option-1.altitude.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### position/option-1.value/option-1.altitude.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### position/option-1.value/option-1.altitude.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### position/option-1.value/option-1.altitude.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### position/option-1.value/option-1.altitude.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-1.value/option-1.altitude.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-1.value/option-1.altitude.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-1.value/option-1.altitude.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### position/option-1.value/option-1.altitude.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### position/option-1.value/option-1.altitude.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### position/option-1.value/option-1.altitude.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-1.value/option-1.altitude.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-1.value/option-1.altitude.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-1.value/option-1.altitude.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### position/option-1.value/option-1.altitude.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### position/option-1.value/option-1.altitude.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### position/option-1.value/option-1.altitude.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### position/option-1.value/option-1.altitude.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### position/option-1.value/option-1.altitude.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-1.value/option-1.altitude.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-1.value/option-1.altitude.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-1.value/option-1.uncertainty
Type: object; optional
Extra fields: Not allowed in this object
### position/option-1.value/option-1.uncertainty.latitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### position/option-1.value/option-1.uncertainty.latitude/option-1
Type: object
Extra fields: Not allowed in this object
### position/option-1.value/option-1.uncertainty.latitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### position/option-1.value/option-1.uncertainty.latitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### position/option-1.value/option-1.uncertainty.latitude/option-2
Type: object
Extra fields: Not allowed in this object
### position/option-1.value/option-1.uncertainty.latitude/option-2.kind
Type: string; required in containing object
const: "standard"
### position/option-1.value/option-1.uncertainty.latitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### position/option-1.value/option-1.uncertainty.latitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-1.value/option-1.uncertainty.latitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-1.value/option-1.uncertainty.latitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-1.value/option-1.uncertainty.latitude/option-3
Type: object
Extra fields: Not allowed in this object
### position/option-1.value/option-1.uncertainty.latitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### position/option-1.value/option-1.uncertainty.latitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### position/option-1.value/option-1.uncertainty.latitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-1.value/option-1.uncertainty.latitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-1.value/option-1.uncertainty.latitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-1.value/option-1.uncertainty.latitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### position/option-1.value/option-1.uncertainty.latitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### position/option-1.value/option-1.uncertainty.latitude/option-4
Type: object
Extra fields: Not allowed in this object
### position/option-1.value/option-1.uncertainty.latitude/option-4.kind
Type: string; required in containing object
const: "bound"
### position/option-1.value/option-1.uncertainty.latitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### position/option-1.value/option-1.uncertainty.latitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-1.value/option-1.uncertainty.latitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-1.value/option-1.uncertainty.latitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-1.value/option-1.uncertainty.longitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### position/option-1.value/option-1.uncertainty.longitude/option-1
Type: object
Extra fields: Not allowed in this object
### position/option-1.value/option-1.uncertainty.longitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### position/option-1.value/option-1.uncertainty.longitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### position/option-1.value/option-1.uncertainty.longitude/option-2
Type: object
Extra fields: Not allowed in this object
### position/option-1.value/option-1.uncertainty.longitude/option-2.kind
Type: string; required in containing object
const: "standard"
### position/option-1.value/option-1.uncertainty.longitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### position/option-1.value/option-1.uncertainty.longitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-1.value/option-1.uncertainty.longitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-1.value/option-1.uncertainty.longitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-1.value/option-1.uncertainty.longitude/option-3
Type: object
Extra fields: Not allowed in this object
### position/option-1.value/option-1.uncertainty.longitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### position/option-1.value/option-1.uncertainty.longitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### position/option-1.value/option-1.uncertainty.longitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-1.value/option-1.uncertainty.longitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-1.value/option-1.uncertainty.longitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-1.value/option-1.uncertainty.longitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### position/option-1.value/option-1.uncertainty.longitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### position/option-1.value/option-1.uncertainty.longitude/option-4
Type: object
Extra fields: Not allowed in this object
### position/option-1.value/option-1.uncertainty.longitude/option-4.kind
Type: string; required in containing object
const: "bound"
### position/option-1.value/option-1.uncertainty.longitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### position/option-1.value/option-1.uncertainty.longitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-1.value/option-1.uncertainty.longitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-1.value/option-1.uncertainty.longitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### position/option-1.value/option-2.kind
Type: string; required in containing object
const: "cartesian"
### position/option-1.value/option-2.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-1.value/option-2.x
Type: object; required in containing object
Extra fields: Not allowed in this object
### position/option-1.value/option-2.x.value
Type: number; required in containing object
### position/option-1.value/option-2.x.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-1.value/option-2.x.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### position/option-1.value/option-2.x.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### position/option-1.value/option-2.x.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### position/option-1.value/option-2.x.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### position/option-1.value/option-2.x.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### position/option-1.value/option-2.x.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### position/option-1.value/option-2.x.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### position/option-1.value/option-2.x.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-1.value/option-2.x.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-1.value/option-2.x.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-1.value/option-2.x.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### position/option-1.value/option-2.x.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### position/option-1.value/option-2.x.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### position/option-1.value/option-2.x.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-1.value/option-2.x.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-1.value/option-2.x.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-1.value/option-2.x.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### position/option-1.value/option-2.x.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### position/option-1.value/option-2.x.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### position/option-1.value/option-2.x.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### position/option-1.value/option-2.x.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### position/option-1.value/option-2.x.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-1.value/option-2.x.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-1.value/option-2.x.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-1.value/option-2.y
Type: object; required in containing object
Extra fields: Not allowed in this object
### position/option-1.value/option-2.y.value
Type: number; required in containing object
### position/option-1.value/option-2.y.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-1.value/option-2.y.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### position/option-1.value/option-2.y.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### position/option-1.value/option-2.y.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### position/option-1.value/option-2.y.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### position/option-1.value/option-2.y.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### position/option-1.value/option-2.y.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### position/option-1.value/option-2.y.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### position/option-1.value/option-2.y.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-1.value/option-2.y.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-1.value/option-2.y.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-1.value/option-2.y.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### position/option-1.value/option-2.y.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### position/option-1.value/option-2.y.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### position/option-1.value/option-2.y.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-1.value/option-2.y.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-1.value/option-2.y.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-1.value/option-2.y.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### position/option-1.value/option-2.y.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### position/option-1.value/option-2.y.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### position/option-1.value/option-2.y.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### position/option-1.value/option-2.y.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### position/option-1.value/option-2.y.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-1.value/option-2.y.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-1.value/option-2.y.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-1.value/option-2.z
Type: object; required in containing object
Extra fields: Not allowed in this object
### position/option-1.value/option-2.z.value
Type: number; required in containing object
### position/option-1.value/option-2.z.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-1.value/option-2.z.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### position/option-1.value/option-2.z.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### position/option-1.value/option-2.z.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### position/option-1.value/option-2.z.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### position/option-1.value/option-2.z.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### position/option-1.value/option-2.z.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### position/option-1.value/option-2.z.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### position/option-1.value/option-2.z.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-1.value/option-2.z.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-1.value/option-2.z.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-1.value/option-2.z.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### position/option-1.value/option-2.z.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### position/option-1.value/option-2.z.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### position/option-1.value/option-2.z.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-1.value/option-2.z.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-1.value/option-2.z.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-1.value/option-2.z.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### position/option-1.value/option-2.z.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### position/option-1.value/option-2.z.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### position/option-1.value/option-2.z.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### position/option-1.value/option-2.z.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### position/option-1.value/option-2.z.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-1.value/option-2.z.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-1.value/option-2.z.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-1.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-1.sourceRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-1.selection
Type: object; optional
Extra fields: Not allowed in this object
### position/option-1.selection.assertionRef
Type: string; required in containing object
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-1.selection.consideredAssertionRefs
Type: list of string; required in containing object
minItems: 1
### position/option-1.selection.consideredAssertionRefs[]
Type: string
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-1.selection.methodRef
Type: string; required in containing object
pattern: "^method:[^\\s:]+(?![\\s\\S])"
### position/option-1.selection.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-1.selection.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-1.selection.evaluatedAt
Type: string; required in containing object
### position/option-1.selection.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### position/option-1.selection.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### position/option-1.selection.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### position/option-1.selection.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### position/option-1.selection.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-2
Type: object
Extra fields: Not allowed in this object
### position/option-2.state
Type: string; required in containing object
const: "approximate"
### position/option-2.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### position/option-2.value/option-1
Type: object
Extra fields: Not allowed in this object
### position/option-2.value/option-1.latitude
Type: number; required in containing object
minimum: -90
maximum: 90
### position/option-2.value/option-1.longitude
Type: number; required in containing object
minimum: -180
maximum: 180
### position/option-2.value/option-1.kind
Type: string; required in containing object
const: "geodetic"
### position/option-2.value/option-1.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-2.value/option-1.altitude
Type: object; optional
Extra fields: Not allowed in this object
### position/option-2.value/option-1.altitude.value
Type: number; required in containing object
### position/option-2.value/option-1.altitude.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-2.value/option-1.altitude.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### position/option-2.value/option-1.altitude.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### position/option-2.value/option-1.altitude.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### position/option-2.value/option-1.altitude.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### position/option-2.value/option-1.altitude.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### position/option-2.value/option-1.altitude.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### position/option-2.value/option-1.altitude.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### position/option-2.value/option-1.altitude.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-2.value/option-1.altitude.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-2.value/option-1.altitude.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-2.value/option-1.altitude.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### position/option-2.value/option-1.altitude.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### position/option-2.value/option-1.altitude.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### position/option-2.value/option-1.altitude.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-2.value/option-1.altitude.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-2.value/option-1.altitude.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-2.value/option-1.altitude.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### position/option-2.value/option-1.altitude.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### position/option-2.value/option-1.altitude.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### position/option-2.value/option-1.altitude.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### position/option-2.value/option-1.altitude.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### position/option-2.value/option-1.altitude.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-2.value/option-1.altitude.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-2.value/option-1.altitude.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-2.value/option-1.uncertainty
Type: object; optional
Extra fields: Not allowed in this object
### position/option-2.value/option-1.uncertainty.latitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### position/option-2.value/option-1.uncertainty.latitude/option-1
Type: object
Extra fields: Not allowed in this object
### position/option-2.value/option-1.uncertainty.latitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### position/option-2.value/option-1.uncertainty.latitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### position/option-2.value/option-1.uncertainty.latitude/option-2
Type: object
Extra fields: Not allowed in this object
### position/option-2.value/option-1.uncertainty.latitude/option-2.kind
Type: string; required in containing object
const: "standard"
### position/option-2.value/option-1.uncertainty.latitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### position/option-2.value/option-1.uncertainty.latitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-2.value/option-1.uncertainty.latitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-2.value/option-1.uncertainty.latitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-2.value/option-1.uncertainty.latitude/option-3
Type: object
Extra fields: Not allowed in this object
### position/option-2.value/option-1.uncertainty.latitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### position/option-2.value/option-1.uncertainty.latitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### position/option-2.value/option-1.uncertainty.latitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-2.value/option-1.uncertainty.latitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-2.value/option-1.uncertainty.latitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-2.value/option-1.uncertainty.latitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### position/option-2.value/option-1.uncertainty.latitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### position/option-2.value/option-1.uncertainty.latitude/option-4
Type: object
Extra fields: Not allowed in this object
### position/option-2.value/option-1.uncertainty.latitude/option-4.kind
Type: string; required in containing object
const: "bound"
### position/option-2.value/option-1.uncertainty.latitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### position/option-2.value/option-1.uncertainty.latitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-2.value/option-1.uncertainty.latitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-2.value/option-1.uncertainty.latitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-2.value/option-1.uncertainty.longitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### position/option-2.value/option-1.uncertainty.longitude/option-1
Type: object
Extra fields: Not allowed in this object
### position/option-2.value/option-1.uncertainty.longitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### position/option-2.value/option-1.uncertainty.longitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### position/option-2.value/option-1.uncertainty.longitude/option-2
Type: object
Extra fields: Not allowed in this object
### position/option-2.value/option-1.uncertainty.longitude/option-2.kind
Type: string; required in containing object
const: "standard"
### position/option-2.value/option-1.uncertainty.longitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### position/option-2.value/option-1.uncertainty.longitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-2.value/option-1.uncertainty.longitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-2.value/option-1.uncertainty.longitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-2.value/option-1.uncertainty.longitude/option-3
Type: object
Extra fields: Not allowed in this object
### position/option-2.value/option-1.uncertainty.longitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### position/option-2.value/option-1.uncertainty.longitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### position/option-2.value/option-1.uncertainty.longitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-2.value/option-1.uncertainty.longitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-2.value/option-1.uncertainty.longitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-2.value/option-1.uncertainty.longitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### position/option-2.value/option-1.uncertainty.longitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### position/option-2.value/option-1.uncertainty.longitude/option-4
Type: object
Extra fields: Not allowed in this object
### position/option-2.value/option-1.uncertainty.longitude/option-4.kind
Type: string; required in containing object
const: "bound"
### position/option-2.value/option-1.uncertainty.longitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### position/option-2.value/option-1.uncertainty.longitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-2.value/option-1.uncertainty.longitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-2.value/option-1.uncertainty.longitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### position/option-2.value/option-2.kind
Type: string; required in containing object
const: "cartesian"
### position/option-2.value/option-2.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-2.value/option-2.x
Type: object; required in containing object
Extra fields: Not allowed in this object
### position/option-2.value/option-2.x.value
Type: number; required in containing object
### position/option-2.value/option-2.x.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-2.value/option-2.x.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### position/option-2.value/option-2.x.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### position/option-2.value/option-2.x.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### position/option-2.value/option-2.x.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### position/option-2.value/option-2.x.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### position/option-2.value/option-2.x.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### position/option-2.value/option-2.x.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### position/option-2.value/option-2.x.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-2.value/option-2.x.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-2.value/option-2.x.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-2.value/option-2.x.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### position/option-2.value/option-2.x.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### position/option-2.value/option-2.x.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### position/option-2.value/option-2.x.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-2.value/option-2.x.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-2.value/option-2.x.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-2.value/option-2.x.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### position/option-2.value/option-2.x.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### position/option-2.value/option-2.x.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### position/option-2.value/option-2.x.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### position/option-2.value/option-2.x.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### position/option-2.value/option-2.x.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-2.value/option-2.x.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-2.value/option-2.x.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-2.value/option-2.y
Type: object; required in containing object
Extra fields: Not allowed in this object
### position/option-2.value/option-2.y.value
Type: number; required in containing object
### position/option-2.value/option-2.y.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-2.value/option-2.y.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### position/option-2.value/option-2.y.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### position/option-2.value/option-2.y.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### position/option-2.value/option-2.y.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### position/option-2.value/option-2.y.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### position/option-2.value/option-2.y.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### position/option-2.value/option-2.y.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### position/option-2.value/option-2.y.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-2.value/option-2.y.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-2.value/option-2.y.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-2.value/option-2.y.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### position/option-2.value/option-2.y.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### position/option-2.value/option-2.y.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### position/option-2.value/option-2.y.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-2.value/option-2.y.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-2.value/option-2.y.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-2.value/option-2.y.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### position/option-2.value/option-2.y.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### position/option-2.value/option-2.y.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### position/option-2.value/option-2.y.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### position/option-2.value/option-2.y.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### position/option-2.value/option-2.y.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-2.value/option-2.y.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-2.value/option-2.y.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-2.value/option-2.z
Type: object; required in containing object
Extra fields: Not allowed in this object
### position/option-2.value/option-2.z.value
Type: number; required in containing object
### position/option-2.value/option-2.z.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-2.value/option-2.z.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### position/option-2.value/option-2.z.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### position/option-2.value/option-2.z.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### position/option-2.value/option-2.z.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### position/option-2.value/option-2.z.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### position/option-2.value/option-2.z.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### position/option-2.value/option-2.z.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### position/option-2.value/option-2.z.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-2.value/option-2.z.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-2.value/option-2.z.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-2.value/option-2.z.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### position/option-2.value/option-2.z.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### position/option-2.value/option-2.z.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### position/option-2.value/option-2.z.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-2.value/option-2.z.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-2.value/option-2.z.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-2.value/option-2.z.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### position/option-2.value/option-2.z.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### position/option-2.value/option-2.z.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### position/option-2.value/option-2.z.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### position/option-2.value/option-2.z.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### position/option-2.value/option-2.z.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-2.value/option-2.z.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-2.value/option-2.z.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### position/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-2.selection
Type: object; optional
Extra fields: Not allowed in this object
### position/option-2.selection.assertionRef
Type: string; required in containing object
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-2.selection.consideredAssertionRefs
Type: list of string; required in containing object
minItems: 1
### position/option-2.selection.consideredAssertionRefs[]
Type: string
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### position/option-2.selection.methodRef
Type: string; required in containing object
pattern: "^method:[^\\s:]+(?![\\s\\S])"
### position/option-2.selection.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-2.selection.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-2.selection.evaluatedAt
Type: string; required in containing object
### position/option-2.selection.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### position/option-2.selection.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### position/option-2.selection.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### position/option-2.selection.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### position/option-2.selection.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### position/option-3
Type: object
Extra fields: Not allowed in this object
### position/option-3.state
Type: string; required in containing object
const: "unknown"
### position/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### position/option-4
Type: object
Extra fields: Not allowed in this object
### position/option-4.state
Type: string; required in containing object
const: "redacted"
### position/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### sources
Type: list of object; required in containing object
The documents, testimony or instrument data on which the record draws.
### sources[]
Type: object
Extra fields: Not allowed in this object
### sources[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### sources[].kind
Type: string; required in containing object
enum: ["document","testimony","instrument_data","other","unknown"]
### sources[].access
Type: string; required in containing object
enum: ["public","restricted","withheld","unknown"]
### sources[].title
Type: string; optional
minLength: 1
pattern: "\\S"
### sources[].uri
Type: string; optional
format: "uri"
### sources[].digest
Type: object; optional
Extra fields: Not allowed in this object
### sources[].digest.algorithm
Type: string; required in containing object
const: "sha256"
### sources[].digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### products
Type: list of choice; required in containing object
Raw or derived data products. Native data stays in its own format.
### products[]
Type: choice
Choose: Exactly one of the alternatives below
### products[]/option-1
Type: object
Extra fields: Not allowed in this object
### products[]/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### products[]/option-1.format
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### products[]/option-1.access
Type: string; required in containing object
enum: ["public","restricted","withheld","unknown"]
### products[]/option-1.uri
Type: string; optional
format: "uri"
### products[]/option-1.digest
Type: object; optional
Extra fields: Not allowed in this object
### products[]/option-1.digest.algorithm
Type: string; required in containing object
const: "sha256"
### products[]/option-1.digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### products[]/option-1.kind
Type: string; required in containing object
const: "raw"
### products[]/option-1.sourceRefs
Type: list of string; required in containing object
minItems: 1
### products[]/option-1.sourceRefs[]
Type: string
pattern: "^(?:source):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### products[]/option-2
Type: object
Extra fields: Not allowed in this object
### products[]/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### products[]/option-2.format
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### products[]/option-2.access
Type: string; required in containing object
enum: ["public","restricted","withheld","unknown"]
### products[]/option-2.uri
Type: string; optional
format: "uri"
### products[]/option-2.digest
Type: object; optional
Extra fields: Not allowed in this object
### products[]/option-2.digest.algorithm
Type: string; required in containing object
const: "sha256"
### products[]/option-2.digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### products[]/option-2.kind
Type: string; required in containing object
const: "derived"
### products[]/option-2.generatedBy
Type: string; required in containing object
pattern: "^(?:process):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### methods
Type: list of object; required in containing object
Declared methods and versions used for selection or processing.
### methods[]
Type: object
Extra fields: Not allowed in this object
### methods[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### methods[].version
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### methods[].description
Type: string; optional
minLength: 1
pattern: "\\S"
### methods[].uri
Type: string; optional
format: "uri"
### frames
Type: list of choice; required in containing object
Coordinate systems and vertical references used by positions and measurements.
### frames[]
Type: choice
Choose: Exactly one of the alternatives below
### frames[]/option-1
Type: object
Extra fields: Not allowed in this object
### frames[]/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### frames[]/option-1.kind
Type: string; required in containing object
const: "geodetic"
### frames[]/option-1.definition
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### frames[]/option-1.definition/option-1
Type: object
Extra fields: Not allowed in this object
### frames[]/option-1.definition/option-1.state
Type: string; required in containing object
const: "identified"
### frames[]/option-1.definition/option-1.authority
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### frames[]/option-1.definition/option-1.code
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### frames[]/option-1.definition/option-1.revision
Type: string; optional
minLength: 1
pattern: "\\S"
### frames[]/option-1.definition/option-2
Type: object
Extra fields: Not allowed in this object
### frames[]/option-1.definition/option-2.state
Type: string; required in containing object
const: "described"
### frames[]/option-1.definition/option-2.description
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### frames[]/option-1.definition/option-3
Type: object
Extra fields: Not allowed in this object
### frames[]/option-1.definition/option-3.state
Type: string; required in containing object
const: "unknown"
### frames[]/option-1.definition/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### frames[]/option-1.angularUnit
Type: string; required in containing object
const: "deg"
### frames[]/option-1.vertical
Type: object; optional
Extra fields: Not allowed in this object
### frames[]/option-1.vertical.definition
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### frames[]/option-1.vertical.definition/option-1
Type: object
Extra fields: Not allowed in this object
### frames[]/option-1.vertical.definition/option-1.state
Type: string; required in containing object
const: "identified"
### frames[]/option-1.vertical.definition/option-1.authority
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### frames[]/option-1.vertical.definition/option-1.code
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### frames[]/option-1.vertical.definition/option-1.revision
Type: string; optional
minLength: 1
pattern: "\\S"
### frames[]/option-1.vertical.definition/option-2
Type: object
Extra fields: Not allowed in this object
### frames[]/option-1.vertical.definition/option-2.state
Type: string; required in containing object
const: "described"
### frames[]/option-1.vertical.definition/option-2.description
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### frames[]/option-1.vertical.definition/option-3
Type: object
Extra fields: Not allowed in this object
### frames[]/option-1.vertical.definition/option-3.state
Type: string; required in containing object
const: "unknown"
### frames[]/option-1.vertical.definition/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### frames[]/option-1.vertical.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### frames[]/option-2
Type: object
Extra fields: Not allowed in this object
### frames[]/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### frames[]/option-2.kind
Type: string; required in containing object
const: "cartesian"
### frames[]/option-2.definition
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### frames[]/option-2.definition/option-1
Type: object
Extra fields: Not allowed in this object
### frames[]/option-2.definition/option-1.state
Type: string; required in containing object
const: "identified"
### frames[]/option-2.definition/option-1.authority
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### frames[]/option-2.definition/option-1.code
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### frames[]/option-2.definition/option-1.revision
Type: string; optional
minLength: 1
pattern: "\\S"
### frames[]/option-2.definition/option-2
Type: object
Extra fields: Not allowed in this object
### frames[]/option-2.definition/option-2.state
Type: string; required in containing object
const: "described"
### frames[]/option-2.definition/option-2.description
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### frames[]/option-2.definition/option-3
Type: object
Extra fields: Not allowed in this object
### frames[]/option-2.definition/option-3.state
Type: string; required in containing object
const: "unknown"
### frames[]/option-2.definition/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### frames[]/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### assertions
Type: list of choice; required in containing object
Source-specific statements about a time, position or measurement, with locators.
### assertions[]
Type: choice
Choose: Exactly one of the alternatives below
### assertions[]/option-1
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assertions[]/option-1.field
Type: string; required in containing object
const: "eventTime"
### assertions[]/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### assertions[]/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### assertions[]/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### assertions[]/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### assertions[]/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### assertions[]/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### assertions[]/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### assertions[]/option-1.value/option-1/option-3.value
Type: string; required in containing object
### assertions[]/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### assertions[]/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### assertions[]/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### assertions[]/option-1.value/option-1/option-4.value
Type: string; required in containing object
### assertions[]/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### assertions[]/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### assertions[]/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### assertions[]/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### assertions[]/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### assertions[]/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### assertions[]/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### assertions[]/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### assertions[]/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### assertions[]/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### assertions[]/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### assertions[]/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### assertions[]/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### assertions[]/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### assertions[]/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### assertions[]/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### assertions[]/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### assertions[]/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### assertions[]/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### assertions[]/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### assertions[]/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### assertions[]/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### assertions[]/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### assertions[]/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### assertions[]/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### assertions[]/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### assertions[]/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### assertions[]/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### assertions[]/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### assertions[]/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### assertions[]/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### assertions[]/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### assertions[]/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### assertions[]/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### assertions[]/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### assertions[]/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### assertions[]/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### assertions[]/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### assertions[]/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### assertions[]/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assertions[]/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### assertions[]/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### assertions[]/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### assertions[]/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### assertions[]/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### assertions[]/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### assertions[]/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### assertions[]/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### assertions[]/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### assertions[]/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### assertions[]/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### assertions[]/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### assertions[]/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### assertions[]/option-2
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assertions[]/option-2.field
Type: string; required in containing object
const: "position"
### assertions[]/option-2.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### assertions[]/option-2.value/option-1
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-1.latitude
Type: number; required in containing object
minimum: -90
maximum: 90
### assertions[]/option-2.value/option-1.longitude
Type: number; required in containing object
minimum: -180
maximum: 180
### assertions[]/option-2.value/option-1.kind
Type: string; required in containing object
const: "geodetic"
### assertions[]/option-2.value/option-1.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assertions[]/option-2.value/option-1.altitude
Type: object; optional
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-1.altitude.value
Type: number; required in containing object
### assertions[]/option-2.value/option-1.altitude.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### assertions[]/option-2.value/option-1.altitude.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### assertions[]/option-2.value/option-1.altitude.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-1.altitude.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### assertions[]/option-2.value/option-1.altitude.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### assertions[]/option-2.value/option-1.altitude.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-1.altitude.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### assertions[]/option-2.value/option-1.altitude.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### assertions[]/option-2.value/option-1.altitude.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### assertions[]/option-2.value/option-1.altitude.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### assertions[]/option-2.value/option-1.altitude.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assertions[]/option-2.value/option-1.altitude.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### assertions[]/option-2.value/option-1.altitude.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-1.altitude.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### assertions[]/option-2.value/option-1.altitude.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### assertions[]/option-2.value/option-1.altitude.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### assertions[]/option-2.value/option-1.altitude.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### assertions[]/option-2.value/option-1.altitude.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assertions[]/option-2.value/option-1.uncertainty
Type: object; optional
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-1.uncertainty.latitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### assertions[]/option-2.value/option-1.uncertainty.latitude/option-1
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-1.uncertainty.latitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### assertions[]/option-2.value/option-1.uncertainty.latitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### assertions[]/option-2.value/option-1.uncertainty.latitude/option-2
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-1.uncertainty.latitude/option-2.kind
Type: string; required in containing object
const: "standard"
### assertions[]/option-2.value/option-1.uncertainty.latitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### assertions[]/option-2.value/option-1.uncertainty.latitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### assertions[]/option-2.value/option-1.uncertainty.latitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### assertions[]/option-2.value/option-1.uncertainty.latitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assertions[]/option-2.value/option-1.uncertainty.latitude/option-3
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### assertions[]/option-2.value/option-1.uncertainty.latitude/option-4
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-1.uncertainty.latitude/option-4.kind
Type: string; required in containing object
const: "bound"
### assertions[]/option-2.value/option-1.uncertainty.latitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### assertions[]/option-2.value/option-1.uncertainty.latitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### assertions[]/option-2.value/option-1.uncertainty.latitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### assertions[]/option-2.value/option-1.uncertainty.latitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assertions[]/option-2.value/option-1.uncertainty.longitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### assertions[]/option-2.value/option-1.uncertainty.longitude/option-1
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-1.uncertainty.longitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### assertions[]/option-2.value/option-1.uncertainty.longitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### assertions[]/option-2.value/option-1.uncertainty.longitude/option-2
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-1.uncertainty.longitude/option-2.kind
Type: string; required in containing object
const: "standard"
### assertions[]/option-2.value/option-1.uncertainty.longitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### assertions[]/option-2.value/option-1.uncertainty.longitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### assertions[]/option-2.value/option-1.uncertainty.longitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### assertions[]/option-2.value/option-1.uncertainty.longitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assertions[]/option-2.value/option-1.uncertainty.longitude/option-3
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### assertions[]/option-2.value/option-1.uncertainty.longitude/option-4
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-1.uncertainty.longitude/option-4.kind
Type: string; required in containing object
const: "bound"
### assertions[]/option-2.value/option-1.uncertainty.longitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### assertions[]/option-2.value/option-1.uncertainty.longitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### assertions[]/option-2.value/option-1.uncertainty.longitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### assertions[]/option-2.value/option-1.uncertainty.longitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assertions[]/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-2.kind
Type: string; required in containing object
const: "cartesian"
### assertions[]/option-2.value/option-2.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assertions[]/option-2.value/option-2.x
Type: object; required in containing object
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-2.x.value
Type: number; required in containing object
### assertions[]/option-2.value/option-2.x.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### assertions[]/option-2.value/option-2.x.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### assertions[]/option-2.value/option-2.x.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-2.x.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### assertions[]/option-2.value/option-2.x.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### assertions[]/option-2.value/option-2.x.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-2.x.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### assertions[]/option-2.value/option-2.x.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### assertions[]/option-2.value/option-2.x.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### assertions[]/option-2.value/option-2.x.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### assertions[]/option-2.value/option-2.x.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assertions[]/option-2.value/option-2.x.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-2.x.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### assertions[]/option-2.value/option-2.x.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### assertions[]/option-2.value/option-2.x.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### assertions[]/option-2.value/option-2.x.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### assertions[]/option-2.value/option-2.x.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assertions[]/option-2.value/option-2.x.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### assertions[]/option-2.value/option-2.x.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### assertions[]/option-2.value/option-2.x.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-2.x.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### assertions[]/option-2.value/option-2.x.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### assertions[]/option-2.value/option-2.x.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### assertions[]/option-2.value/option-2.x.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### assertions[]/option-2.value/option-2.x.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assertions[]/option-2.value/option-2.y
Type: object; required in containing object
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-2.y.value
Type: number; required in containing object
### assertions[]/option-2.value/option-2.y.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### assertions[]/option-2.value/option-2.y.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### assertions[]/option-2.value/option-2.y.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-2.y.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### assertions[]/option-2.value/option-2.y.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### assertions[]/option-2.value/option-2.y.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-2.y.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### assertions[]/option-2.value/option-2.y.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### assertions[]/option-2.value/option-2.y.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### assertions[]/option-2.value/option-2.y.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### assertions[]/option-2.value/option-2.y.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assertions[]/option-2.value/option-2.y.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-2.y.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### assertions[]/option-2.value/option-2.y.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### assertions[]/option-2.value/option-2.y.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### assertions[]/option-2.value/option-2.y.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### assertions[]/option-2.value/option-2.y.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assertions[]/option-2.value/option-2.y.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### assertions[]/option-2.value/option-2.y.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### assertions[]/option-2.value/option-2.y.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-2.y.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### assertions[]/option-2.value/option-2.y.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### assertions[]/option-2.value/option-2.y.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### assertions[]/option-2.value/option-2.y.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### assertions[]/option-2.value/option-2.y.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assertions[]/option-2.value/option-2.z
Type: object; required in containing object
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-2.z.value
Type: number; required in containing object
### assertions[]/option-2.value/option-2.z.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### assertions[]/option-2.value/option-2.z.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### assertions[]/option-2.value/option-2.z.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-2.z.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### assertions[]/option-2.value/option-2.z.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### assertions[]/option-2.value/option-2.z.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-2.z.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### assertions[]/option-2.value/option-2.z.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### assertions[]/option-2.value/option-2.z.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### assertions[]/option-2.value/option-2.z.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### assertions[]/option-2.value/option-2.z.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assertions[]/option-2.value/option-2.z.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-2.z.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### assertions[]/option-2.value/option-2.z.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### assertions[]/option-2.value/option-2.z.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### assertions[]/option-2.value/option-2.z.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### assertions[]/option-2.value/option-2.z.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assertions[]/option-2.value/option-2.z.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### assertions[]/option-2.value/option-2.z.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### assertions[]/option-2.value/option-2.z.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-2.value/option-2.z.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### assertions[]/option-2.value/option-2.z.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### assertions[]/option-2.value/option-2.z.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### assertions[]/option-2.value/option-2.z.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### assertions[]/option-2.value/option-2.z.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assertions[]/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### assertions[]/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assertions[]/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### assertions[]/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### assertions[]/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### assertions[]/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### assertions[]/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### assertions[]/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### assertions[]/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### assertions[]/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### assertions[]/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### assertions[]/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### assertions[]/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### assertions[]/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### assertions[]/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### assertions[]/option-3
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assertions[]/option-3.field
Type: string; required in containing object
const: "measurement"
### assertions[]/option-3.measurementId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assertions[]/option-3.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### assertions[]/option-3.value.value
Type: number; required in containing object
### assertions[]/option-3.value.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### assertions[]/option-3.value.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### assertions[]/option-3.value.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-3.value.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### assertions[]/option-3.value.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### assertions[]/option-3.value.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-3.value.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### assertions[]/option-3.value.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### assertions[]/option-3.value.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### assertions[]/option-3.value.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### assertions[]/option-3.value.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assertions[]/option-3.value.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-3.value.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### assertions[]/option-3.value.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### assertions[]/option-3.value.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### assertions[]/option-3.value.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### assertions[]/option-3.value.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assertions[]/option-3.value.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### assertions[]/option-3.value.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### assertions[]/option-3.value.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-3.value.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### assertions[]/option-3.value.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### assertions[]/option-3.value.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### assertions[]/option-3.value.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### assertions[]/option-3.value.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assertions[]/option-3.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### assertions[]/option-3.provenance.sourceRef
Type: string; required in containing object
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assertions[]/option-3.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### assertions[]/option-3.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### assertions[]/option-3.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### assertions[]/option-3.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### assertions[]/option-3.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-3.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### assertions[]/option-3.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### assertions[]/option-3.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-3.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### assertions[]/option-3.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### assertions[]/option-3.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### assertions[]/option-3.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### assertions[]/option-3.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### assertions[]/option-3.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### assertions[]/option-3.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### assertions[]/option-3.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### measurements
Type: list of object; required in containing object
Named quantities with a value, unit, uncertainty and source references.
### measurements[]
Type: object
Extra fields: Not allowed in this object
### measurements[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### measurements[].quantity
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### measurements[].value
Type: object; required in containing object
Extra fields: Not allowed in this object
### measurements[].value.value
Type: number; required in containing object
### measurements[].value.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### measurements[].value.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### measurements[].value.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### measurements[].value.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### measurements[].value.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### measurements[].value.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### measurements[].value.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### measurements[].value.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### measurements[].value.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### measurements[].value.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### measurements[].value.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### measurements[].value.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### measurements[].value.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### measurements[].value.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### measurements[].value.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### measurements[].value.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### measurements[].value.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### measurements[].value.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### measurements[].value.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### measurements[].value.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### measurements[].value.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### measurements[].value.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### measurements[].value.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### measurements[].value.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### measurements[].value.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### measurements[].sourceRefs
Type: list of string; required in containing object
minItems: 1
### measurements[].sourceRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### measurements[].frameRef
Type: string; optional
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### measurements[].selection
Type: object; optional
Extra fields: Not allowed in this object
### measurements[].selection.assertionRef
Type: string; required in containing object
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### measurements[].selection.consideredAssertionRefs
Type: list of string; required in containing object
minItems: 1
### measurements[].selection.consideredAssertionRefs[]
Type: string
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### measurements[].selection.methodRef
Type: string; required in containing object
pattern: "^method:[^\\s:]+(?![\\s\\S])"
### measurements[].selection.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### measurements[].selection.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### measurements[].selection.evaluatedAt
Type: string; required in containing object
### measurements[].selection.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### measurements[].selection.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### measurements[].selection.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### measurements[].selection.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### measurements[].selection.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### processing
Type: list of object; required in containing object
Who declared a processing step, which method was used, and its inputs and outputs.
### processing[]
Type: object
Extra fields: Not allowed in this object
### processing[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### processing[].methodRef
Type: string; required in containing object
pattern: "^(?:method):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### processing[].methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### processing[].performedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### processing[].performedAt
Type: string; required in containing object
### processing[].performedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### processing[].performedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### processing[].performedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### processing[].performedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### processing[].inputRefs
Type: list of string; required in containing object
minItems: 1
### processing[].inputRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### processing[].outputRefs
Type: list of string; required in containing object
minItems: 1
### processing[].outputRefs[]
Type: string
pattern: "^(?:product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### extensions
Type: object; optional
Namespaced JSON for additional information. The core does not validate its meaning.
### extensions/keys
Type: string
pattern: "^[a-z][a-z0-9_-]*(?:\\.[a-z0-9_-]+)+(?![\\s\\S])"
### extensions/value
Type: JSON value
Reference: #/$defs/__schema0
Value: Arbitrary JSON; extension contents are not semantically checked by the core.
# Scoring and evaluation fields (/v2/docs/reference/scoring)
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
## Score policy
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
Define a provider's question, method, missing-data rule and scale. Conformance does not endorse the method.
Schema: urn:disclosureos:experimental:provider-score-policy:0.1.0
Export: @disclosureos/scoring/experimental/v2/provider-score-policy/schema/0.1.0
### kind
Type: string; required in containing object
Discriminator selecting this document or field alternative. Use its exact declared value.
const: "provider_score_policy"
### schemaVersion
Type: string; required in containing object
Document contract version, separate from the method revision and npm package version.
const: "0.1.0"
### id
Type: string; required in containing object
Stable identity of this scoring policy, qualified by its version and exact serialized bytes.
minLength: 1
pattern: "\\S"
### version
Type: string; required in containing object
Declared revision of the policy or artifact. Retain its exact bytes as well as this label.
minLength: 1
pattern: "\\S"
### title
Type: string; required in containing object
Readable name for this policy or source artifact.
minLength: 1
pattern: "\\S"
### metric
Type: object; required in containing object
The question the score answers. Keep documentation quality, research priority and origin confidence distinct.
Extra fields: Not allowed in this object
### metric.id
Type: string; required in containing object
Identity of the metric; not an overall case score.
minLength: 1
pattern: "\\S"
### metric.label
Type: string; required in containing object
Readable label. Use the stable ID when referring to this entry.
minLength: 1
pattern: "\\S"
### metric.question
Type: string; required in containing object
The question a consumer must understand before interpreting the score.
minLength: 1
pattern: "\\S"
### subjectKinds
Type: list of string; required in containing object
Kinds of subject this policy accepts. Validation checks the declared kind, not the subject's existence.
minItems: 1
### subjectKinds[]
Type: string
enum: ["case","record","claim","measurement","product","source","collection"]
### method
Type: object; required in containing object
Description and one or more pinned method artifacts. The generic evaluator does not execute them.
Extra fields: Not allowed in this object
### method.description
Type: string; required in containing object
Explanation retained with this declaration. Software does not establish its scientific adequacy.
minLength: 1
pattern: "\\S"
### method.artifacts
Type: list of object; required in containing object
Files describing or implementing this method, each with its own identity, revision and byte pin.
minItems: 1
### method.artifacts[]
Type: object
Extra fields: Not allowed in this object
### method.artifacts[].ref
Type: string; required in containing object
Local artifact reference. Supply its bytes in the matching evaluator map; the evaluator does not fetch it.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### method.artifacts[].id
Type: string; required in containing object
Identifier in this containing object. Preserve its scope; it is not an automatic lookup or download URL.
minLength: 1
pattern: "\\S"
### method.artifacts[].version
Type: string; required in containing object
Declared revision of the policy or artifact. Retain its exact bytes as well as this label.
minLength: 1
pattern: "\\S"
### method.artifacts[].mediaType
Type: string; required in containing object
Declared media type for the retained file; this does not decode or validate its contents.
minLength: 1
pattern: "\\S"
### method.artifacts[].sha256
Type: string; required in containing object
SHA-256 of the exact retained bytes. Reserializing equivalent JSON can change this digest.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### method.artifacts[].byteLength
Type: integer; required in containing object
Exact byte length, not a character count. Supply the original file to verify it.
minimum: 1
maximum: 9007199254740991
### applicability
Type: string; required in containing object
Conditions under which the method is intended to be used.
minLength: 1
pattern: "\\S"
### missingData
Type: object; required in containing object
Whether required missing information withholds the score or permits a partial result.
Extra fields: Not allowed in this object
### missingData.handling
Type: string; required in containing object
withhold prevents scoring with declared missing inputs. allow_partial still requires the method to explain its arithmetic; comparison declines incomplete inputs.
enum: ["withhold","allow_partial"]
### missingData.description
Type: string; required in containing object
Explanation retained with this declaration. Software does not establish its scientific adequacy.
minLength: 1
pattern: "\\S"
### limitations
Type: list of string; required in containing object
Limits on the method or result. Preserve them with any displayed score.
minItems: 1
### limitations[]
Type: string
minLength: 1
pattern: "\\S"
### scale
Type: choice; required in containing object
Choose numeric points with optional grades, or named ordinal levels. These are alternatives, not a universal ladder.
Choose: Exactly one of the alternatives below
### scale/option-1
Type: object
Choose numeric points with optional grades, or named ordinal levels. These are alternatives, not a universal ladder.
Extra fields: Not allowed in this object
### scale/option-1.kind
Type: string; required in containing object
Discriminator selecting this document or field alternative. Use its exact declared value.
const: "numeric"
### scale/option-1.min
Type: number; required in containing object
Lower boundary. Numeric grade bands include this endpoint.
### scale/option-1.max
Type: number; required in containing object
Upper boundary. A grade excludes this endpoint unless it is the final band's maximum.
### scale/option-1.direction
Type: string; required in containing object
Ordering preference: higher, lower or none. An ordering does not establish a calibrated probability.
enum: ["higher","lower","none"]
### scale/option-1.unit
Type: string; required in containing object
Declared scale unit, such as points. A 0–100 range is not automatically a percentage.
minLength: 1
pattern: "\\S"
### scale/option-1.grades
Type: list of object; required in containing object
Required array; it may be empty. When supplied, bands must be ordered, contiguous and cover the scale without gaps or overlaps.
### scale/option-1.grades[]
Type: object
Extra fields: Not allowed in this object
### scale/option-1.grades[].id
Type: string; required in containing object
Identifier in this containing object. Preserve its scope; it is not an automatic lookup or download URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### scale/option-1.grades[].label
Type: string; required in containing object
Readable label. Use the stable ID when referring to this entry.
minLength: 1
pattern: "\\S"
### scale/option-1.grades[].min
Type: number; required in containing object
Lower boundary. Numeric grade bands include this endpoint.
### scale/option-1.grades[].max
Type: number; required in containing object
Upper boundary. A grade excludes this endpoint unless it is the final band's maximum.
### scale/option-2
Type: object
Choose numeric points with optional grades, or named ordinal levels. These are alternatives, not a universal ladder.
Extra fields: Not allowed in this object
### scale/option-2.kind
Type: string; required in containing object
Discriminator selecting this document or field alternative. Use its exact declared value.
const: "ordinal"
### scale/option-2.direction
Type: string; required in containing object
Ordering preference: higher, lower or none. An ordering does not establish a calibrated probability.
enum: ["higher","lower","none"]
### scale/option-2.levels
Type: list of object; required in containing object
At least two named levels in declared order. Do not invent numeric distances between labels.
minItems: 2
### scale/option-2.levels[]
Type: object
Extra fields: Not allowed in this object
### scale/option-2.levels[].id
Type: string; required in containing object
Identifier in this containing object. Preserve its scope; it is not an automatic lookup or download URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### scale/option-2.levels[].label
Type: string; required in containing object
Readable label. Use the stable ID when referring to this entry.
minLength: 1
pattern: "\\S"
### scale/option-2.levels[].description
Type: string; required in containing object
Explanation retained with this declaration. Software does not establish its scientific adequacy.
minLength: 1
pattern: "\\S"
## Provider result
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
Keep one provider's declared outcome, common source inputs and separate derivation files. Unavailable has no value.
Schema: urn:disclosureos:experimental:provider-score-result:0.1.0
Export: @disclosureos/scoring/experimental/v2/provider-score-result/schema/0.1.0
### kind
Type: string; required in containing object
Discriminator selecting this document or field alternative. Use its exact declared value.
const: "provider_score_result"
### schemaVersion
Type: string; required in containing object
Document contract version, separate from the method revision and npm package version.
const: "0.1.0"
### id
Type: string; required in containing object
Identity of this provider's result, separate from its subject and policy.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### provider
Type: object; required in containing object
Declared provider identity. The evaluator does not authenticate this person or organization.
Extra fields: Not allowed in this object
### provider.id
Type: string; required in containing object
Declared provider identifier. Different IDs do not establish independent research.
minLength: 1
pattern: "\\S"
### provider.name
Type: string; required in containing object
Provider's display name.
minLength: 1
pattern: "\\S"
### provider.url
Type: string; optional
Optional HTTP(S) provider URL. It is not fetched or authenticated.
pattern: "^https?:\\/\\/"
### producedAt
Type: string; required in containing object
Declared production time with a UTC designator or offset. This is not a trusted timestamp.
format: "date-time"
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### subject
Type: object; required in containing object
What is being scored. The evaluator checks its kind against the policy but does not resolve it against records.
Extra fields: Not allowed in this object
### subject.kind
Type: string; required in containing object
Declared subject type supported by the policy. The ID has the corresponding scope.
enum: ["case","record","claim","measurement","product","source","collection"]
### subject.id
Type: string; required in containing object
Identifier of the scored subject. Include the intended snapshot in inputs when scoring that snapshot.
minLength: 1
pattern: "\\S"
### inputScope
Type: object; required in containing object
Identity and description of the selected source scope. Both must match for conservative comparison.
Extra fields: Not allowed in this object
### inputScope.id
Type: string; required in containing object
Identifier in this containing object. Preserve its scope; it is not an automatic lookup or download URL.
minLength: 1
pattern: "\\S"
### inputScope.description
Type: string; required in containing object
Explanation retained with this declaration. Software does not establish its scientific adequacy.
minLength: 1
pattern: "\\S"
### policy
Type: object; required in containing object
Exact policy identity, revision, SHA-256 and byte length. Supply its unchanged bytes as policyBytes.
Extra fields: Not allowed in this object
### policy.id
Type: string; required in containing object
Identifier in this containing object. Preserve its scope; it is not an automatic lookup or download URL.
minLength: 1
pattern: "\\S"
### policy.version
Type: string; required in containing object
Declared revision of the policy or artifact. Retain its exact bytes as well as this label.
minLength: 1
pattern: "\\S"
### policy.sha256
Type: string; required in containing object
SHA-256 of the exact retained bytes. Reserializing equivalent JSON can change this digest.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### policy.byteLength
Type: integer; required in containing object
Exact byte length, not a character count. Supply the original file to verify it.
minimum: 1
maximum: 9007199254740991
### inputs
Type: list of object; required in containing object
Common source basis, separate from each provider's worksheets. At least one pinned artifact is required.
minItems: 1
### inputs[]
Type: object
Extra fields: Not allowed in this object
### inputs[].ref
Type: string; required in containing object
Local artifact reference. Supply its bytes in the matching evaluator map; the evaluator does not fetch it.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### inputs[].title
Type: string; required in containing object
Readable name for this policy or source artifact.
minLength: 1
pattern: "\\S"
### inputs[].mediaType
Type: string; required in containing object
Declared media type for the retained file; this does not decode or validate its contents.
minLength: 1
pattern: "\\S"
### inputs[].sha256
Type: string; required in containing object
SHA-256 of the exact retained bytes. Reserializing equivalent JSON can change this digest.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### inputs[].byteLength
Type: integer; required in containing object
Exact byte length, not a character count. Supply the original file to verify it.
minimum: 1
maximum: 9007199254740991
### derivation
Type: list of object; required in containing object
Provider-specific worksheets or other derivation artifacts. Required array, which may be empty; supplied artifacts are checked separately.
### derivation[]
Type: object
Extra fields: Not allowed in this object
### derivation[].ref
Type: string; required in containing object
Local artifact reference. Supply its bytes in the matching evaluator map; the evaluator does not fetch it.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### derivation[].title
Type: string; required in containing object
Readable name for this policy or source artifact.
minLength: 1
pattern: "\\S"
### derivation[].mediaType
Type: string; required in containing object
Declared media type for the retained file; this does not decode or validate its contents.
minLength: 1
pattern: "\\S"
### derivation[].sha256
Type: string; required in containing object
SHA-256 of the exact retained bytes. Reserializing equivalent JSON can change this digest.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### derivation[].byteLength
Type: integer; required in containing object
Exact byte length, not a character count. Supply the original file to verify it.
minimum: 1
maximum: 9007199254740991
### applicability
Type: object; required in containing object
Whether this particular use of the policy is applicable, not applicable or undetermined, with a reason.
Extra fields: Not allowed in this object
### applicability.status
Type: string; required in containing object
Declared applicability of this policy to this result; it is not an independent scientific finding.
enum: ["applicable","not_applicable","undetermined"]
### applicability.reason
Type: string; required in containing object
Why this applicability state was declared.
minLength: 1
pattern: "\\S"
### missingInputs
Type: list of object; required in containing object
Known missing requirements, including unrecorded judgments inside an available worksheet. An empty list does not prove nothing else is needed.
### missingInputs[]
Type: object
Extra fields: Not allowed in this object
### missingInputs[].ref
Type: string; required in containing object
Identifier of a missing requirement. It may name an absent judgment, not a file to fetch.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### missingInputs[].description
Type: string; required in containing object
Explanation retained with this declaration. Software does not establish its scientific adequacy.
minLength: 1
pattern: "\\S"
### limitations
Type: list of string; required in containing object
Limits on the method or result. Preserve them with any displayed score.
### limitations[]
Type: string
minLength: 1
pattern: "\\S"
### outcome
Type: choice; required in containing object
Choose a scored result or an unavailable result. The unavailable alternative has no value or grade.
Choose: Exactly one of the alternatives below
### outcome/option-1
Type: object
Choose a scored result or an unavailable result. The unavailable alternative has no value or grade.
Extra fields: Not allowed in this object
### outcome/option-1.status
Type: string; required in containing object
Discriminator selecting scored or unavailable. A valid unavailable result has no numeric value.
const: "scored"
### outcome/option-1.value
Type: choice; required in containing object
Finite numeric score or stable ordinal level ID, as required by the policy. It is declared, not recomputed by this evaluator.
Choose: At least one of the alternatives below
### outcome/option-1.value/option-1
Type: number
Finite numeric score or stable ordinal level ID, as required by the policy. It is declared, not recomputed by this evaluator.
### outcome/option-1.value/option-2
Type: string
Finite numeric score or stable ordinal level ID, as required by the policy. It is declared, not recomputed by this evaluator.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### outcome/option-1.gradeId
Type: string; optional
Optional declared band or level ID. The evaluator checks agreement with the policy and scored value.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### outcome/option-1.explanation
Type: string; required in containing object
Provider's reasoning for this scored or unavailable outcome.
minLength: 1
pattern: "\\S"
### outcome/option-2
Type: object
Choose a scored result or an unavailable result. The unavailable alternative has no value or grade.
Extra fields: Not allowed in this object
### outcome/option-2.status
Type: string; required in containing object
Discriminator selecting scored or unavailable. A valid unavailable result has no numeric value.
const: "unavailable"
### outcome/option-2.reasonCode
Type: string; required in containing object
Why no score is supplied. Must agree with applicability and declared missing inputs; unavailable is not zero.
enum: ["missing_inputs","not_applicable","undetermined","not_calculated"]
### outcome/option-2.explanation
Type: string; required in containing object
Provider's reasoning for this scored or unavailable outcome.
minLength: 1
pattern: "\\S"
## Summary request
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
Pin a base claim history and dependency artifacts for the fixed assessment-summary workflow. This is its request manifest, not the generated receipt.
Schema: urn:disclosureos:experimental:assessment-summary-evaluation:0.1.0
Export: @disclosureos/scoring/experimental/v2/summary-evaluation/schema/0.1.0
### kind
Type: string; required in containing object
Discriminator selecting this document or field alternative. Use its exact declared value.
const: "assessment_summary_evaluation"
### schemaVersion
Type: string; required in containing object
Document contract version, separate from the method revision and npm package version.
const: "0.1.0"
### id
Type: string; required in containing object
Identifier in this containing object. Preserve its scope; it is not an automatic lookup or download URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### workflow
Type: string; required in containing object
Fixed assessment-summary:0.1.0 workflow. It accepts base claim_history 0.1.0, not every later subject-specific history.
const: "assessment-summary:0.1.0"
### history
Type: object; required in containing object
Pin of the exact base claim-history file. Supply it as historyBytes; dependency pins alone do not provide it.
Extra fields: Not allowed in this object
### history.sha256
Type: string; required in containing object
SHA-256 of the exact retained bytes. Reserializing equivalent JSON can change this digest.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### history.byteLength
Type: integer; required in containing object
Exact byte length, not a character count. Supply the original file to verify it.
minimum: 1
maximum: 9007199254740991
### dependencies
Type: object; required in containing object
Pinned vocabulary, implementation and environment artifacts. Their identity is checked; execution and authority are not attested.
Extra fields: Not allowed in this object
### dependencies.vocabularies
Type: list of object; required in containing object
One or more pinned vocabulary artifacts. This workflow does not establish term membership or meaning.
minItems: 1
### dependencies.vocabularies[]
Type: object
Extra fields: Not allowed in this object
### dependencies.vocabularies[].ref
Type: string; required in containing object
Local artifact reference. Supply its bytes in the matching evaluator map; the evaluator does not fetch it.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### dependencies.vocabularies[].id
Type: string; required in containing object
Identifier in this containing object. Preserve its scope; it is not an automatic lookup or download URL.
minLength: 1
pattern: "\\S"
### dependencies.vocabularies[].version
Type: string; required in containing object
Declared revision of the policy or artifact. Retain its exact bytes as well as this label.
minLength: 1
pattern: "\\S"
### dependencies.vocabularies[].sha256
Type: string; required in containing object
SHA-256 of the exact retained bytes. Reserializing equivalent JSON can change this digest.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### dependencies.vocabularies[].byteLength
Type: integer; required in containing object
Exact byte length, not a character count. Supply the original file to verify it.
minimum: 1
maximum: 9007199254740991
### dependencies.implementation
Type: object; required in containing object
Declared implementation artifact. Its digest does not prove that these bytes were previously executed.
Extra fields: Not allowed in this object
### dependencies.implementation.ref
Type: string; required in containing object
Local artifact reference. Supply its bytes in the matching evaluator map; the evaluator does not fetch it.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### dependencies.implementation.id
Type: string; required in containing object
Identifier in this containing object. Preserve its scope; it is not an automatic lookup or download URL.
minLength: 1
pattern: "\\S"
### dependencies.implementation.version
Type: string; required in containing object
Declared revision of the policy or artifact. Retain its exact bytes as well as this label.
minLength: 1
pattern: "\\S"
### dependencies.implementation.sha256
Type: string; required in containing object
SHA-256 of the exact retained bytes. Reserializing equivalent JSON can change this digest.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### dependencies.implementation.byteLength
Type: integer; required in containing object
Exact byte length, not a character count. Supply the original file to verify it.
minimum: 1
maximum: 9007199254740991
### dependencies.environment
Type: object; required in containing object
Declared environment artifact. Matching it does not attest the actual runtime used.
Extra fields: Not allowed in this object
### dependencies.environment.ref
Type: string; required in containing object
Local artifact reference. Supply its bytes in the matching evaluator map; the evaluator does not fetch it.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### dependencies.environment.id
Type: string; required in containing object
Identifier in this containing object. Preserve its scope; it is not an automatic lookup or download URL.
minLength: 1
pattern: "\\S"
### dependencies.environment.version
Type: string; required in containing object
Declared revision of the policy or artifact. Retain its exact bytes as well as this label.
minLength: 1
pattern: "\\S"
### dependencies.environment.sha256
Type: string; required in containing object
SHA-256 of the exact retained bytes. Reserializing equivalent JSON can change this digest.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### dependencies.environment.byteLength
Type: integer; required in containing object
Exact byte length, not a character count. Supply the original file to verify it.
minimum: 1
maximum: 9007199254740991
## Research request
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
Pin a reproduction packet and dependencies for the fixed instrument-research completion workflow. Read the nested results as well as the receipt.
Schema: urn:disclosureos:experimental:research-evaluation:0.1.0
Export: @disclosureos/schema/experimental/v2/evaluation/schema/0.1.0
### kind
Type: string; required in containing object
Discriminator selecting this document or field alternative. Use its exact declared value.
const: "research_evaluation"
### schemaVersion
Type: string; required in containing object
Document contract version, separate from the method revision and npm package version.
const: "0.1.0"
### id
Type: string; required in containing object
Identifier in this containing object. Preserve its scope; it is not an automatic lookup or download URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### workflow
Type: string; required in containing object
Fixed research-completion:0.1.0 workflow. This does not select arbitrary executable scoring code.
const: "research-completion:0.1.0"
### packet
Type: object; required in containing object
Pin of the reproduction-packet manifest. Supply packetBytes plus the files it declares.
Extra fields: Not allowed in this object
### packet.sha256
Type: string; required in containing object
SHA-256 of the exact retained bytes. Reserializing equivalent JSON can change this digest.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### packet.byteLength
Type: integer; required in containing object
Exact byte length, not a character count. Supply the original file to verify it.
minimum: 1
maximum: 9007199254740991
### dependencies
Type: object; required in containing object
Pinned vocabulary, implementation and environment artifacts. Their identity is checked; execution and authority are not attested.
Extra fields: Not allowed in this object
### dependencies.vocabularies
Type: list of object; required in containing object
One or more pinned vocabulary artifacts. This workflow does not establish term membership or meaning.
minItems: 1
### dependencies.vocabularies[]
Type: object
Extra fields: Not allowed in this object
### dependencies.vocabularies[].ref
Type: string; required in containing object
Local artifact reference. Supply its bytes in the matching evaluator map; the evaluator does not fetch it.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### dependencies.vocabularies[].id
Type: string; required in containing object
Identifier in this containing object. Preserve its scope; it is not an automatic lookup or download URL.
minLength: 1
pattern: "\\S"
### dependencies.vocabularies[].version
Type: string; required in containing object
Declared revision of the policy or artifact. Retain its exact bytes as well as this label.
minLength: 1
pattern: "\\S"
### dependencies.vocabularies[].sha256
Type: string; required in containing object
SHA-256 of the exact retained bytes. Reserializing equivalent JSON can change this digest.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### dependencies.vocabularies[].byteLength
Type: integer; required in containing object
Exact byte length, not a character count. Supply the original file to verify it.
minimum: 1
maximum: 9007199254740991
### dependencies.implementation
Type: object; required in containing object
Declared implementation artifact. Its digest does not prove that these bytes were previously executed.
Extra fields: Not allowed in this object
### dependencies.implementation.ref
Type: string; required in containing object
Local artifact reference. Supply its bytes in the matching evaluator map; the evaluator does not fetch it.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### dependencies.implementation.id
Type: string; required in containing object
Identifier in this containing object. Preserve its scope; it is not an automatic lookup or download URL.
minLength: 1
pattern: "\\S"
### dependencies.implementation.version
Type: string; required in containing object
Declared revision of the policy or artifact. Retain its exact bytes as well as this label.
minLength: 1
pattern: "\\S"
### dependencies.implementation.sha256
Type: string; required in containing object
SHA-256 of the exact retained bytes. Reserializing equivalent JSON can change this digest.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### dependencies.implementation.byteLength
Type: integer; required in containing object
Exact byte length, not a character count. Supply the original file to verify it.
minimum: 1
maximum: 9007199254740991
### dependencies.environment
Type: object; required in containing object
Declared environment artifact. Matching it does not attest the actual runtime used.
Extra fields: Not allowed in this object
### dependencies.environment.ref
Type: string; required in containing object
Local artifact reference. Supply its bytes in the matching evaluator map; the evaluator does not fetch it.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### dependencies.environment.id
Type: string; required in containing object
Identifier in this containing object. Preserve its scope; it is not an automatic lookup or download URL.
minLength: 1
pattern: "\\S"
### dependencies.environment.version
Type: string; required in containing object
Declared revision of the policy or artifact. Retain its exact bytes as well as this label.
minLength: 1
pattern: "\\S"
### dependencies.environment.sha256
Type: string; required in containing object
SHA-256 of the exact retained bytes. Reserializing equivalent JSON can change this digest.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### dependencies.environment.byteLength
Type: integer; required in containing object
Exact byte length, not a character count. Supply the original file to verify it.
minimum: 1
maximum: 9007199254740991
## Profile request
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
Select a released-document, historical-testimony or physical-sample workflow and pin its inputs. A reproducible profile can still fail.
Schema: urn:disclosureos:experimental:profile-evaluation:0.1.0
Export: @disclosureos/schema/experimental/v2/profile-evaluation/schema/0.1.0
### kind
Type: string; required in containing object
Discriminator selecting this document or field alternative. Use its exact declared value.
const: "profile_evaluation"
### schemaVersion
Type: string; required in containing object
Document contract version, separate from the method revision and npm package version.
const: "0.1.0"
### id
Type: string; required in containing object
Identifier in this containing object. Preserve its scope; it is not an automatic lookup or download URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### workflow
Type: string; required in containing object
One of three fixed provenance-profile workflows. Select the matching history and selection contracts.
enum: ["released-documents:0.1.0","historical-testimony:0.1.0","physical-samples:0.1.0"]
### history
Type: object; required in containing object
Exact history file required by the chosen workflow, supplied as historyBytes.
Extra fields: Not allowed in this object
### history.sha256
Type: string; required in containing object
SHA-256 of the exact retained bytes. Reserializing equivalent JSON can change this digest.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### history.byteLength
Type: integer; required in containing object
Exact byte length, not a character count. Supply the original file to verify it.
minimum: 1
maximum: 9007199254740991
### selection
Type: object; required in containing object
Exact selection document required by the chosen workflow, supplied as selectionBytes.
Extra fields: Not allowed in this object
### selection.sha256
Type: string; required in containing object
SHA-256 of the exact retained bytes. Reserializing equivalent JSON can change this digest.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### selection.byteLength
Type: integer; required in containing object
Exact byte length, not a character count. Supply the original file to verify it.
minimum: 1
maximum: 9007199254740991
### assets
Type: list of object; required in containing object
Source artifacts with their source: references, local file keys and byte pins. Supply bytes as assetFiles keyed by fileRef.
### assets[]
Type: object
Extra fields: Not allowed in this object
### assets[].ref
Type: string; required in containing object
Source reference used by the selected history, distinct from its local file key.
pattern: "^source:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assets[].fileRef
Type: string; required in containing object
Local assetFiles map key. This is not a URL the evaluator fetches.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### assets[].sha256
Type: string; required in containing object
SHA-256 of the exact retained bytes. Reserializing equivalent JSON can change this digest.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### assets[].byteLength
Type: integer; required in containing object
Exact byte length, not a character count. Supply the original file to verify it.
minimum: 1
maximum: 9007199254740991
### dependencies
Type: object; required in containing object
Pinned vocabulary, implementation and environment artifacts. Their identity is checked; execution and authority are not attested.
Extra fields: Not allowed in this object
### dependencies.vocabularies
Type: list of object; required in containing object
One or more pinned vocabulary artifacts. This workflow does not establish term membership or meaning.
minItems: 1
### dependencies.vocabularies[]
Type: object
Extra fields: Not allowed in this object
### dependencies.vocabularies[].ref
Type: string; required in containing object
Local artifact reference. Supply its bytes in the matching evaluator map; the evaluator does not fetch it.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### dependencies.vocabularies[].id
Type: string; required in containing object
Identifier in this containing object. Preserve its scope; it is not an automatic lookup or download URL.
minLength: 1
pattern: "\\S"
### dependencies.vocabularies[].version
Type: string; required in containing object
Declared revision of the policy or artifact. Retain its exact bytes as well as this label.
minLength: 1
pattern: "\\S"
### dependencies.vocabularies[].sha256
Type: string; required in containing object
SHA-256 of the exact retained bytes. Reserializing equivalent JSON can change this digest.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### dependencies.vocabularies[].byteLength
Type: integer; required in containing object
Exact byte length, not a character count. Supply the original file to verify it.
minimum: 1
maximum: 9007199254740991
### dependencies.implementation
Type: object; required in containing object
Declared implementation artifact. Its digest does not prove that these bytes were previously executed.
Extra fields: Not allowed in this object
### dependencies.implementation.ref
Type: string; required in containing object
Local artifact reference. Supply its bytes in the matching evaluator map; the evaluator does not fetch it.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### dependencies.implementation.id
Type: string; required in containing object
Identifier in this containing object. Preserve its scope; it is not an automatic lookup or download URL.
minLength: 1
pattern: "\\S"
### dependencies.implementation.version
Type: string; required in containing object
Declared revision of the policy or artifact. Retain its exact bytes as well as this label.
minLength: 1
pattern: "\\S"
### dependencies.implementation.sha256
Type: string; required in containing object
SHA-256 of the exact retained bytes. Reserializing equivalent JSON can change this digest.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### dependencies.implementation.byteLength
Type: integer; required in containing object
Exact byte length, not a character count. Supply the original file to verify it.
minimum: 1
maximum: 9007199254740991
### dependencies.environment
Type: object; required in containing object
Declared environment artifact. Matching it does not attest the actual runtime used.
Extra fields: Not allowed in this object
### dependencies.environment.ref
Type: string; required in containing object
Local artifact reference. Supply its bytes in the matching evaluator map; the evaluator does not fetch it.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### dependencies.environment.id
Type: string; required in containing object
Identifier in this containing object. Preserve its scope; it is not an automatic lookup or download URL.
minLength: 1
pattern: "\\S"
### dependencies.environment.version
Type: string; required in containing object
Declared revision of the policy or artifact. Retain its exact bytes as well as this label.
minLength: 1
pattern: "\\S"
### dependencies.environment.sha256
Type: string; required in containing object
SHA-256 of the exact retained bytes. Reserializing equivalent JSON can change this digest.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### dependencies.environment.byteLength
Type: integer; required in containing object
Exact byte length, not a character count. Supply the original file to verify it.
minimum: 1
maximum: 9007199254740991
# Witness and account fields (/v2/docs/reference/testimony)
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
## Witnesses and accounts
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
Public witnesses, distinct accounts, sourced procedures and aggregate declarations.
Schema: urn:disclosureos:experimental:research-entities:0.1.0
Export: @disclosureos/records/experimental/v2/entities/schema/0.1.0
### kind
Type: string; required in containing object
Identifies the document kind.
const: "research_entities"
### schemaVersion
Type: string; required in containing object
The document contract version.
const: "0.1.0"
### id
Type: string; required in containing object
A scoped document identity.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observationRef
Type: object; required in containing object
Exact observation snapshot described by these declarations.
Extra fields: Not allowed in this object
### observationRef.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observationRef.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation:0.1.0"
### observationRef.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### contextRefs
Type: list of object; required in containing object
Exact event and setting snapshots used by this document.
### contextRefs[]
Type: object
Extra fields: Not allowed in this object
### contextRefs[].documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### contextRefs[].schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### contextRefs[].sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### recordedAt
Type: string; required in containing object
When these declarations were recorded, separate from the event and account dates.
### recordedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### recordedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### recordedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### recordedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### recordedBy
Type: string; required in containing object
Who assembled these declarations.
minLength: 1
pattern: "\\S"
### entities
Type: list of choice; required in containing object
Typed witnesses, accounts, procedures and aggregate declarations.
minItems: 1
### entities[]
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.kind
Type: string; required in containing object
const: "witness"
### entities[]/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity
Type: list of object; optional
Sourced public identity assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.publicIdentity[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.publicIdentity[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.publicIdentity[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.publicIdentity[].content/option-1.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.publicIdentity[].content/option-1.value/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-1.value/option-1.kind
Type: string; required in containing object
const: "public_name"
### entities[]/option-1.fields.publicIdentity[].content/option-1.value/option-1.display
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "pseudonym"
### entities[]/option-1.fields.publicIdentity[].content/option-1.value/option-2.display
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-1.value/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-1.value/option-3.kind
Type: string; required in containing object
const: "withheld"
### entities[]/option-1.fields.publicIdentity[].content/option-1.value/option-3.display
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.publicIdentity[].content/option-2.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.publicIdentity[].content/option-2.value/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-2.value/option-1.kind
Type: string; required in containing object
const: "public_name"
### entities[]/option-1.fields.publicIdentity[].content/option-2.value/option-1.display
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "pseudonym"
### entities[]/option-1.fields.publicIdentity[].content/option-2.value/option-2.display
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-2.value/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-2.value/option-3.kind
Type: string; required in containing object
const: "withheld"
### entities[]/option-1.fields.publicIdentity[].content/option-2.value/option-3.display
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.publicIdentity[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.publicIdentity[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.publicIdentity[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.publicIdentity[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.publicIdentity[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous
Type: list of object; optional
Sourced anonymous assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.anonymous[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.anonymous[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.anonymous[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.anonymous[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-1.fields.anonymous[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.anonymous[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-1.fields.anonymous[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.anonymous[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.anonymous[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.anonymous[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.anonymous[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.anonymous[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified
Type: list of object; optional
Sourced willing to be identified assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.willingToBeIdentified[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.willingToBeIdentified[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.willingToBeIdentified[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.willingToBeIdentified[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category
Type: list of object; optional
Sourced category assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.category[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.category[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.category[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.category[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.value
Type: string; required in containing object
Professional/role category of a witness.
enum: ["military_pilot","military_aircrew","military_ground","military_naval","military_radar_operator","military_other","commercial_pilot","commercial_aircrew","private_pilot","air_traffic_controller","aviation_other","government_official","elected_official","intelligence_officer","law_enforcement","scientist","astronomer","meteorologist","engineer","medical_professional","maritime","civilian","civilian_group","anonymous","unknown"]
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.category[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.category[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.category[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.category[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.category[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.category[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.category[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.category[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.category[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.category[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.category[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.value
Type: string; required in containing object
Professional/role category of a witness.
enum: ["military_pilot","military_aircrew","military_ground","military_naval","military_radar_operator","military_other","commercial_pilot","commercial_aircrew","private_pilot","air_traffic_controller","aviation_other","government_official","elected_official","intelligence_officer","law_enforcement","scientist","astronomer","meteorologist","engineer","medical_professional","maritime","civilian","civilian_group","anonymous","unknown"]
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.category[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.category[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.category[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.category[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.category[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.category[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.category[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.category[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.category[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.category[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.category[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.category[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.category[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.category[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.category[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.category[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.category[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.category[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.category[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.category[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.category[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.category[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.category[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.category[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.category[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.category[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role
Type: list of object; optional
Sourced role assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.role[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.role[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.role[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.role[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.role[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.role[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.role[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.role[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.role[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.role[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.role[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.role[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.role[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.role[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.role[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.role[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.role[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.role[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.role[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.role[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.role[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.role[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.role[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.role[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.role[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.role[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.role[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.role[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.role[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.role[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.role[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.role[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.role[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.role[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.role[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.role[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.role[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.role[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.role[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.role[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.role[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization
Type: list of object; optional
Sourced organization assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.organization[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.organization[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.organization[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.organization[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.organization[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.organization[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.organization[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.organization[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.organization[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.organization[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.organization[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.organization[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.organization[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.organization[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.organization[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.organization[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.organization[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears
Type: list of object; optional
Sourced experience years assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.experienceYears[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.experienceYears[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.value
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.experienceYears[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.experienceYears[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.value
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.experienceYears[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.experienceYears[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.experienceYears[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.experienceYears[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.experienceYears[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.experienceYears[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance
Type: list of object; optional
Sourced security clearance assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.securityClearance[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.securityClearance[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.value
Type: string; required in containing object
Security clearance level held by a witness.
enum: ["none","confidential","secret","top_secret","sci","unknown"]
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.securityClearance[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.securityClearance[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.value
Type: string; required in containing object
Security clearance level held by a witness.
enum: ["none","confidential","secret","top_secret","sci","unknown"]
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.securityClearance[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.securityClearance[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.securityClearance[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.securityClearance[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.securityClearance[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.securityClearance[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver
Type: list of object; optional
Sourced is professional observer assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.isProfessionalObserver[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.isProfessionalObserver[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.isProfessionalObserver[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience
Type: list of object; optional
Sourced has aviation experience assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.hasAviationExperience[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasAviationExperience[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.hasAviationExperience[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.hasAviationExperience[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasAviationExperience[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience
Type: list of object; optional
Sourced has military experience assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.hasMilitaryExperience[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasMilitaryExperience[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground
Type: list of object; optional
Sourced has scientific background assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.hasScientificBackground[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasScientificBackground[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.hasScientificBackground[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.hasScientificBackground[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasScientificBackground[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge
Type: list of object; optional
Sourced has prior uapknowledge assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.hasPriorUAPKnowledge[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.hasPriorUAPKnowledge[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior
Type: list of object; optional
Sourced was skeptic prior assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.wasSkepticPrior[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.value
Type: boolean; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.kind
Type: string; required in containing object
const: "calendar"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.kind
Type: string; required in containing object
const: "context"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference
Type: object; required in containing object
Temporal or event context for a qualification, not an arbitrary object attribute.
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.target
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-2.reference.target/option-2.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-3.kind
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.value.relevantTime/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.wasSkepticPrior[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.wasSkepticPrior[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description
Type: list of object; optional
Sourced description assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-1.fields.description[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.description[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-1.fields.description[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-1.fields.description[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.description[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.description[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.description[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.description[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.description[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-1.fields.description[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.description[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.description[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.description[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.description[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.description[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-1.fields.description[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-1.fields.description[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-1.fields.description[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-1.fields.description[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-1.fields.description[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-1.fields.description[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-1.fields.description[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-1.fields.description[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-1.fields.description[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-1.fields.description[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.kind
Type: string; required in containing object
const: "account"
### entities[]/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds
Type: list of object; optional
Sourced speaker witness ids assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.speakerWitnessIds[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.speakerWitnessIds[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.value[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.value[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.speakerWitnessIds[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.speakerWitnessIds[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder
Type: list of object; optional
Sourced recorder assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.recorder[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.recorder[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.recorder[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.recorder[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.recorder[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.recorder[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.recorder[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.recorder[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.recorder[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.recorder[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.recorder[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.recorder[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.recorder[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.recorder[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.recorder[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.recorder[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.recorder[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.recorder[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.recorder[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.recorder[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.recorder[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recorder[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context
Type: list of object; optional
Sourced context assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.context[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.context[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.context[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.context[].content/option-1.value
Type: string; required in containing object
The setting in which testimony was given.
enum: ["sworn_affidavit","congressional_testimony","deposition","official_interview","written_statement","recorded_interview","informal_account","anonymous_tip","whistleblower_disclosure"]
### entities[]/option-2.fields.context[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.context[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.context[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.context[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.context[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.context[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.context[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.context[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.context[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.context[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.context[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.context[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.context[].content/option-2.value
Type: string; required in containing object
The setting in which testimony was given.
enum: ["sworn_affidavit","congressional_testimony","deposition","official_interview","written_statement","recorded_interview","informal_account","anonymous_tip","whistleblower_disclosure"]
### entities[]/option-2.fields.context[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.context[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.context[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.context[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.context[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.context[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.context[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.context[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.context[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.context[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.context[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.context[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.context[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.context[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.context[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.context[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.context[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.context[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.context[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.context[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.context[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.context[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.context[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.context[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.context[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.context[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.context[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.context[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.context[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime
Type: list of object; optional
Sourced recorded time assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.recordedTime[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.recordedTime[].content/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.recordedTime[].content/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-2.fields.recordedTime[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.recordedTime[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.recordedTime[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.recordedTime[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.recordedTime[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.recordedTime[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty
Type: list of object; optional
Sourced date certainty assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.dateCertainty[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.dateCertainty[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.dateCertainty[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.dateCertainty[].content/option-1.value
Type: string; required in containing object
enum: ["exact","approximate","estimated","unknown"]
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.dateCertainty[].content/option-2.value
Type: string; required in containing object
enum: ["exact","approximate","estimated","unknown"]
### entities[]/option-2.fields.dateCertainty[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.dateCertainty[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.dateCertainty[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.dateCertainty[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.dateCertainty[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.dateCertainty[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext
Type: list of object; optional
Sourced event context assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.eventContext[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.eventContext[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.eventContext[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.value.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.value.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.value.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-2.fields.eventContext[].content/option-1.value.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-2.kind
Type: string; required in containing object
const: "reported_object"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-2.field
Type: string; optional
enum: ["shape","sizeDescription","color","secondaryColors","luminosity","sound","soundDescription","surfaceDetails","formation","structuralFeatures","countDescription","speedDescription","altitudeDescription","flightPath","maneuvers","maneuverDescriptions","trajectoryDescription","radarContactReported","infraredSignatureReported"]
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-3.kind
Type: string; required in containing object
const: "place"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-3.field
Type: string; optional
enum: ["name","country","countryCode","region","city","address","position","coordinatePrecision","coordinatesApproximate","elevationSource","siteType","secondarySiteTypes","terrain","airspaceClass","proximity","infrastructureSensitivity","sensitivity"]
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-4.kind
Type: string; required in containing object
const: "platform"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-4.field
Type: string; optional
enum: ["role","placeId","name","type","designation","callsign","flightNumber","squadron","mission","operator","radarContact","weaponsSystemEngaged","interceptAttempted"]
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-5.kind
Type: string; required in containing object
const: "environment"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-5.field
Type: string; optional
enum: ["placeId","platformId","temporalId","observedAt","weather","visibility","cloudCover","windDescription","celestialConditions","moonPhase","precipitation"]
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-6
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-6.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-6.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-7
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-7.kind
Type: string; required in containing object
const: "collection"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.value.target/option-7.field
Type: string; optional
enum: ["sensorType","detectionMethod","productRefs","acquisitionIds","retentionStatus","rawDataAvailable","anomalies","correlationDescription","alignmentDescription","notes"]
### entities[]/option-2.fields.eventContext[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.eventContext[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.value.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.value.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.value.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### entities[]/option-2.fields.eventContext[].content/option-2.value.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-1.kind
Type: string; required in containing object
const: "event"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-2.kind
Type: string; required in containing object
const: "reported_object"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-2.field
Type: string; optional
enum: ["shape","sizeDescription","color","secondaryColors","luminosity","sound","soundDescription","surfaceDetails","formation","structuralFeatures","countDescription","speedDescription","altitudeDescription","flightPath","maneuvers","maneuverDescriptions","trajectoryDescription","radarContactReported","infraredSignatureReported"]
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-3.kind
Type: string; required in containing object
const: "place"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-3.field
Type: string; optional
enum: ["name","country","countryCode","region","city","address","position","coordinatePrecision","coordinatesApproximate","elevationSource","siteType","secondarySiteTypes","terrain","airspaceClass","proximity","infrastructureSensitivity","sensitivity"]
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-4.kind
Type: string; required in containing object
const: "platform"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-4.field
Type: string; optional
enum: ["role","placeId","name","type","designation","callsign","flightNumber","squadron","mission","operator","radarContact","weaponsSystemEngaged","interceptAttempted"]
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-5.kind
Type: string; required in containing object
const: "environment"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-5.field
Type: string; optional
enum: ["placeId","platformId","temporalId","observedAt","weather","visibility","cloudCover","windDescription","celestialConditions","moonPhase","precipitation"]
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-6
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-6.kind
Type: string; required in containing object
const: "temporal"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-6.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-7
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-7.kind
Type: string; required in containing object
const: "collection"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.value.target/option-7.field
Type: string; optional
enum: ["sensorType","detectionMethod","productRefs","acquisitionIds","retentionStatus","rawDataAvailable","anomalies","correlationDescription","alignmentDescription","notes"]
### entities[]/option-2.fields.eventContext[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.eventContext[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.eventContext[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.eventContext[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.eventContext[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.eventContext[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content
Type: list of object; optional
Sourced content assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.content[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.content[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.content[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.content[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.content[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.content[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.content[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.content[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.content[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.content[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.content[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.content[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.content[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.content[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.content[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.content[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.content[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.content[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.content[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.content[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.content[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.content[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.content[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.content[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.content[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.content[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.content[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.content[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.content[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.content[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.content[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.content[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.content[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.content[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.content[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.content[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.content[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.content[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.content[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.content[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.content[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.content[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.content[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.content[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary
Type: list of object; optional
Sourced summary assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.summary[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.summary[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.summary[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.summary[].content/option-1.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-1.value.text
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-1.value.summarizedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.summary[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.summary[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.summary[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.summary[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.summary[].content/option-2.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-2.value.text
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-2.value.summarizedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.summary[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.summary[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.summary[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.summary[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.summary[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.summary[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.summary[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.summary[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.summary[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.summary[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.summary[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.summary[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.summary[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument
Type: list of object; optional
Sourced source document assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.sourceDocument[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.sourceDocument[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.sourceDocument[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.sourceDocument[].content/option-1.value
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.sourceDocument[].content/option-2.value
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.sourceDocument[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.sourceDocument[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.sourceDocument[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.sourceDocument[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.sourceDocument[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.sourceDocument[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable
Type: list of object; optional
Sourced interview available assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.interviewAvailable[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.interviewAvailable[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.interviewAvailable[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.interviewAvailable[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-2.fields.interviewAvailable[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.interviewAvailable[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.interviewAvailable[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.interviewAvailable[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.interviewAvailable[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.interviewAvailable[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable
Type: list of object; optional
Sourced written report available assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.writtenReportAvailable[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.writtenReportAvailable[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.writtenReportAvailable[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.writtenReportAvailable[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath
Type: list of object; optional
Sourced under oath assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.underOath[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.underOath[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.underOath[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.underOath[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-2.fields.underOath[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.underOath[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.underOath[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.underOath[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.underOath[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.underOath[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-2.fields.underOath[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.underOath[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.underOath[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.underOath[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.underOath[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.underOath[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.underOath[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.underOath[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.underOath[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.underOath[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.underOath[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.underOath[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.underOath[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.underOath[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus
Type: list of object; optional
Sourced custody status assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.custodyStatus[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.custodyStatus[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.custodyStatus[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.custodyStatus[].content/option-1.value
Type: string; required in containing object
Custody status of an evidence item.
enum: ["verified","partial","unverified","government_held","private_held","lost","destroyed","classified","unknown"]
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.custodyStatus[].content/option-2.value
Type: string; required in containing object
Custody status of an evidence item.
enum: ["verified","partial","unverified","government_held","private_held","lost","destroyed","classified","unknown"]
### entities[]/option-2.fields.custodyStatus[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.custodyStatus[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.custodyStatus[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.custodyStatus[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.custodyStatus[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.custodyStatus[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs
Type: list of object; optional
Sourced support refs assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-2.fields.supportRefs[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.supportRefs[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-2.fields.supportRefs[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-2.fields.supportRefs[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-2.fields.supportRefs[].content/option-1.value[]
Type: string
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-2.fields.supportRefs[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-2.fields.supportRefs[].content/option-2.value[]
Type: string
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.supportRefs[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-2.fields.supportRefs[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-2.fields.supportRefs[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-2.fields.supportRefs[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-2.fields.supportRefs[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-2.fields.supportRefs[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.kind
Type: string; required in containing object
const: "procedure"
### entities[]/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType
Type: list of object; optional
Sourced procedure type assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-3.fields.procedureType[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.procedureType[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.procedureType[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.procedureType[].content/option-1.value
Type: string; required in containing object
const: "polygraph"
### entities[]/option-3.fields.procedureType[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.procedureType[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.procedureType[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.procedureType[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.procedureType[].content/option-2.value
Type: string; required in containing object
const: "polygraph"
### entities[]/option-3.fields.procedureType[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.procedureType[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.procedureType[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.procedureType[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.procedureType[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.procedureType[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.procedureType[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.procedureType[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.procedureType[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.procedureType[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.procedureType[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.procedureType[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId
Type: list of object; optional
Sourced witness id assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-3.fields.witnessId[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.witnessId[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.witnessId[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.witnessId[].content/option-1.value
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.witnessId[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.witnessId[].content/option-2.value
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.witnessId[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.witnessId[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.witnessId[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.witnessId[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.witnessId[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.witnessId[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId
Type: list of object; optional
Sourced account id assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-3.fields.accountId[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.accountId[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.accountId[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.accountId[].content/option-1.value
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.accountId[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.accountId[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.accountId[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.accountId[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.accountId[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.accountId[].content/option-2.value
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.accountId[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.accountId[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.accountId[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.accountId[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.accountId[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.accountId[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.accountId[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.accountId[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.accountId[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.accountId[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.accountId[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.accountId[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.accountId[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.accountId[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered
Type: list of object; optional
Sourced administered assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-3.fields.administered[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.administered[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.administered[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.administered[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-3.fields.administered[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.administered[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.administered[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.administered[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.administered[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.administered[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-3.fields.administered[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.administered[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.administered[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.administered[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.administered[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.administered[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.administered[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.administered[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.administered[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.administered[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.administered[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.administered[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.administered[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.administered[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed
Type: list of object; optional
Sourced passed assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-3.fields.passed[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.passed[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.passed[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.passed[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-3.fields.passed[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.passed[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.passed[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.passed[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.passed[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.passed[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-3.fields.passed[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.passed[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.passed[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.passed[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.passed[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.passed[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.passed[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.passed[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.passed[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.passed[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.passed[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.passed[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.passed[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.passed[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt
Type: list of object; optional
Sourced performed at assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-3.fields.performedAt[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.performedAt[].content/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-3.fields.performedAt[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.performedAt[].content/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-3.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-4.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### entities[]/option-3.fields.performedAt[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.performedAt[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.performedAt[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.performedAt[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.performedAt[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.performedAt[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context
Type: list of object; optional
Sourced context assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-3.fields.context[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.context[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.context[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.context[].content/option-1.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.context[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.context[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.context[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.context[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.context[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.context[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.context[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.context[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.context[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.context[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.context[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.context[].content/option-2.value
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.context[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.context[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.context[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.context[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.context[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.context[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.context[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.context[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.context[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.context[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.context[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.context[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.context[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.context[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.context[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.context[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.context[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.context[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.context[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.context[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.context[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.context[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.context[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.context[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.context[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.context[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.context[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.context[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument
Type: list of object; optional
Sourced source document assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-3.fields.sourceDocument[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.sourceDocument[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-3.fields.sourceDocument[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-3.fields.sourceDocument[].content/option-1.value
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-3.fields.sourceDocument[].content/option-2.value
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.sourceDocument[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-3.fields.sourceDocument[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-3.fields.sourceDocument[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-3.fields.sourceDocument[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-3.fields.sourceDocument[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-3.fields.sourceDocument[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.kind
Type: string; required in containing object
const: "witness_group"
### entities[]/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds
Type: list of object; optional
Sourced witness ids assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-4.fields.witnessIds[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.witnessIds[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.witnessIds[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.witnessIds[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-4.fields.witnessIds[].content/option-1.value[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.witnessIds[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.witnessIds[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.witnessIds[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.witnessIds[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-4.fields.witnessIds[].content/option-2.value[]
Type: string
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.witnessIds[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.witnessIds[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.witnessIds[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.witnessIds[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.witnessIds[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.witnessIds[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.witnessIds[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.witnessIds[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.witnessIds[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.witnessIds[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount
Type: list of object; optional
Sourced reported count assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-4.fields.reportedCount[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.reportedCount[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.reportedCount[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.reportedCount[].content/option-1.value
Type: integer; required in containing object
minimum: 0
maximum: 9007199254740991
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.reportedCount[].content/option-2.value
Type: integer; required in containing object
minimum: 0
maximum: 9007199254740991
### entities[]/option-4.fields.reportedCount[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.reportedCount[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.reportedCount[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.reportedCount[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.reportedCount[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.reportedCount[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories
Type: list of object; optional
Sourced categories assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-4.fields.categories[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.categories[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.categories[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.categories[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-4.fields.categories[].content/option-1.value[]
Type: string
Professional/role category of a witness.
enum: ["military_pilot","military_aircrew","military_ground","military_naval","military_radar_operator","military_other","commercial_pilot","commercial_aircrew","private_pilot","air_traffic_controller","aviation_other","government_official","elected_official","intelligence_officer","law_enforcement","scientist","astronomer","meteorologist","engineer","medical_professional","maritime","civilian","civilian_group","anonymous","unknown"]
### entities[]/option-4.fields.categories[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.categories[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.categories[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.categories[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.categories[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.categories[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-4.fields.categories[].content/option-2.value[]
Type: string
Professional/role category of a witness.
enum: ["military_pilot","military_aircrew","military_ground","military_naval","military_radar_operator","military_other","commercial_pilot","commercial_aircrew","private_pilot","air_traffic_controller","aviation_other","government_official","elected_official","intelligence_officer","law_enforcement","scientist","astronomer","meteorologist","engineer","medical_professional","maritime","civilian","civilian_group","anonymous","unknown"]
### entities[]/option-4.fields.categories[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.categories[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.categories[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.categories[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.categories[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.categories[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.categories[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.categories[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.categories[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.categories[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.categories[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.categories[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.categories[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.categories[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses
Type: list of object; optional
Sourced military witnesses assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-4.fields.militaryWitnesses[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.militaryWitnesses[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.militaryWitnesses[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.militaryWitnesses[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.militaryWitnesses[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.militaryWitnesses[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.militaryWitnesses[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses
Type: list of object; optional
Sourced aviation witnesses assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-4.fields.aviationWitnesses[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.aviationWitnesses[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.aviationWitnesses[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.aviationWitnesses[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.aviationWitnesses[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.aviationWitnesses[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.aviationWitnesses[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers
Type: list of object; optional
Sourced professional observers assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-4.fields.professionalObservers[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.professionalObservers[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.professionalObservers[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.professionalObservers[].content/option-1.value
Type: boolean; required in containing object
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.professionalObservers[].content/option-2.value
Type: boolean; required in containing object
### entities[]/option-4.fields.professionalObservers[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.professionalObservers[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.professionalObservers[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.professionalObservers[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.professionalObservers[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.professionalObservers[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions
Type: list of object; optional
Sourced descriptions assertions. Alternatives and unknowns are retained; supplied does not mean verified.
minItems: 1
### entities[]/option-4.fields.descriptions[]
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].id
Type: string; required in containing object
Assertion identity within this entity, independent of array order.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.descriptions[].content
Type: choice; required in containing object
Choose: At least one of the alternatives below
### entities[]/option-4.fields.descriptions[].content/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-1.state
Type: string; required in containing object
const: "known"
### entities[]/option-4.fields.descriptions[].content/option-1.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-4.fields.descriptions[].content/option-1.value[]
Type: string
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-1.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-2.state
Type: string; required in containing object
const: "approximate"
### entities[]/option-4.fields.descriptions[].content/option-2.value
Type: list of string; required in containing object
minItems: 1
### entities[]/option-4.fields.descriptions[].content/option-2.value[]
Type: string
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-2.originalWording
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-3.state
Type: string; required in containing object
const: "unknown"
### entities[]/option-4.fields.descriptions[].content/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### entities[]/option-4.fields.descriptions[].content/option-4
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-4.state
Type: string; required in containing object
const: "redacted"
### entities[]/option-4.fields.descriptions[].content/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-5
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-5.state
Type: string; required in containing object
const: "unmapped"
### entities[]/option-4.fields.descriptions[].content/option-5.originalWording
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-5.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.sourceRef
Type: string; required in containing object
pattern: "^(source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}$"
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### entities[]/option-4.fields.descriptions[].content/option-5.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
## Attributable interpretations
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
Review a particular witness, account or assertion in an exact document version.
Schema: urn:disclosureos:experimental:claim-history:0.3.0
Export: @disclosureos/records/experimental/v2/claims/schema/0.3.0
### kind
Type: string; required in containing object
Identifies the document kind.
const: "claim_history"
### schemaVersion
Type: string; required in containing object
The document contract version.
const: "0.3.0"
### id
Type: string; required in containing object
A scoped document identity.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### contextRefs
Type: list of object; required in containing object
Exact event and setting snapshots used by this document.
### contextRefs[]
Type: object
Extra fields: Not allowed in this object
### contextRefs[].documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### contextRefs[].schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### contextRefs[].sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### entityRefs
Type: list of object; required in containing object
Exact witness and account snapshots used by this review.
### entityRefs[]
Type: object
Extra fields: Not allowed in this object
### entityRefs[].documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### entityRefs[].schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:research-entities:0.1.0"
### entityRefs[].sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation
Type: object; required in containing object
The factual record under its own contract.
Extra fields: Not allowed in this object
### observation.kind
Type: string; required in containing object
const: "observation"
### observation.schemaVersion
Type: string; required in containing object
const: "0.1.0"
### observation.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.status
Type: string; required in containing object
enum: ["draft","published","withdrawn"]
### observation.createdAt
Type: string; required in containing object
### observation.createdAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.createdAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.createdAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.createdAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.updatedAt
Type: string; required in containing object
### observation.updatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.updatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.updatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.updatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.summary
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.eventTime
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.eventTime/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.state
Type: string; required in containing object
const: "known"
### observation.eventTime/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### observation.eventTime/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### observation.eventTime/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### observation.eventTime/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.eventTime/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### observation.eventTime/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.eventTime/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### observation.eventTime/option-1.value/option-1/option-3.value
Type: string; required in containing object
### observation.eventTime/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.eventTime/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.eventTime/option-1.value/option-1/option-4.value
Type: string; required in containing object
### observation.eventTime/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.eventTime/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### observation.eventTime/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.eventTime/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### observation.eventTime/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.eventTime/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### observation.eventTime/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.eventTime/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### observation.eventTime/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### observation.eventTime/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.eventTime/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.eventTime/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### observation.eventTime/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.eventTime/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.eventTime/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### observation.eventTime/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.eventTime/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### observation.eventTime/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.eventTime/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### observation.eventTime/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### observation.eventTime/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.eventTime/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.eventTime/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### observation.eventTime/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.eventTime/option-1.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-1.sourceRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-1.selection
Type: object; optional
Extra fields: Not allowed in this object
### observation.eventTime/option-1.selection.assertionRef
Type: string; required in containing object
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-1.selection.consideredAssertionRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-1.selection.consideredAssertionRefs[]
Type: string
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-1.selection.methodRef
Type: string; required in containing object
pattern: "^method:[^\\s:]+(?![\\s\\S])"
### observation.eventTime/option-1.selection.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-1.selection.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-1.selection.evaluatedAt
Type: string; required in containing object
### observation.eventTime/option-1.selection.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-1.selection.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-1.selection.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-1.selection.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-1.selection.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-1.uncertainty
Type: choice; optional
Choose: Exactly one of the alternatives below
### observation.eventTime/option-1.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.eventTime/option-1.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.eventTime/option-1.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.eventTime/option-1.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.eventTime/option-1.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-1.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-1.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-1.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.eventTime/option-1.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.eventTime/option-1.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-1.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-1.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-1.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.eventTime/option-1.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.eventTime/option-1.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-1.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.eventTime/option-1.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.eventTime/option-1.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-1.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-1.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.state
Type: string; required in containing object
const: "approximate"
### observation.eventTime/option-2.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### observation.eventTime/option-2.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### observation.eventTime/option-2.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### observation.eventTime/option-2.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.eventTime/option-2.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### observation.eventTime/option-2.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.eventTime/option-2.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### observation.eventTime/option-2.value/option-1/option-3.value
Type: string; required in containing object
### observation.eventTime/option-2.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.eventTime/option-2.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.eventTime/option-2.value/option-1/option-4.value
Type: string; required in containing object
### observation.eventTime/option-2.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-2.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-2.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-2.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.eventTime/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.kind
Type: string; required in containing object
const: "interval"
### observation.eventTime/option-2.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.eventTime/option-2.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### observation.eventTime/option-2.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.eventTime/option-2.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### observation.eventTime/option-2.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.eventTime/option-2.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### observation.eventTime/option-2.value/option-2.start/option-3.value
Type: string; required in containing object
### observation.eventTime/option-2.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.eventTime/option-2.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.eventTime/option-2.value/option-2.start/option-4.value
Type: string; required in containing object
### observation.eventTime/option-2.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-2.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-2.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-2.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.eventTime/option-2.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.eventTime/option-2.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### observation.eventTime/option-2.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.eventTime/option-2.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### observation.eventTime/option-2.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.eventTime/option-2.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### observation.eventTime/option-2.value/option-2.end/option-3.value
Type: string; required in containing object
### observation.eventTime/option-2.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.eventTime/option-2.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.eventTime/option-2.value/option-2.end/option-4.value
Type: string; required in containing object
### observation.eventTime/option-2.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-2.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-2.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-2.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.eventTime/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-2.selection
Type: object; optional
Extra fields: Not allowed in this object
### observation.eventTime/option-2.selection.assertionRef
Type: string; required in containing object
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-2.selection.consideredAssertionRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-2.selection.consideredAssertionRefs[]
Type: string
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-2.selection.methodRef
Type: string; required in containing object
pattern: "^method:[^\\s:]+(?![\\s\\S])"
### observation.eventTime/option-2.selection.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.selection.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.selection.evaluatedAt
Type: string; required in containing object
### observation.eventTime/option-2.selection.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.eventTime/option-2.selection.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.eventTime/option-2.selection.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.eventTime/option-2.selection.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.eventTime/option-2.selection.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.uncertainty
Type: choice; optional
Choose: Exactly one of the alternatives below
### observation.eventTime/option-2.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.eventTime/option-2.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.eventTime/option-2.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.eventTime/option-2.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.eventTime/option-2.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-2.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-2.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.eventTime/option-2.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.eventTime/option-2.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-2.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-2.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.eventTime/option-2.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.eventTime/option-2.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-2.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.eventTime/option-2.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.eventTime/option-2.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.eventTime/option-2.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.eventTime/option-2.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.eventTime/option-3
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-3.state
Type: string; required in containing object
const: "unknown"
### observation.eventTime/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### observation.eventTime/option-4
Type: object
Extra fields: Not allowed in this object
### observation.eventTime/option-4.state
Type: string; required in containing object
const: "redacted"
### observation.eventTime/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.state
Type: string; required in containing object
const: "known"
### observation.position/option-1.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.latitude
Type: number; required in containing object
minimum: -90
maximum: 90
### observation.position/option-1.value/option-1.longitude
Type: number; required in containing object
minimum: -180
maximum: 180
### observation.position/option-1.value/option-1.kind
Type: string; required in containing object
const: "geodetic"
### observation.position/option-1.value/option-1.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.altitude
Type: object; optional
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.altitude.value
Type: number; required in containing object
### observation.position/option-1.value/option-1.altitude.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.altitude.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-1.altitude.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.altitude.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-1.value/option-1.altitude.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.altitude.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.altitude.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.altitude.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-1.value/option-1.altitude.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-1.value/option-1.altitude.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.altitude.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.altitude.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.altitude.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.altitude.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.uncertainty
Type: object; optional
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.latitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-1.uncertainty.latitude/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.latitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-1.value/option-1.uncertainty.latitude/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.latitude/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.uncertainty.latitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.uncertainty.latitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-1.value/option-1.uncertainty.latitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-1.value/option-1.uncertainty.latitude/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.latitude/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.uncertainty.latitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.uncertainty.latitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.uncertainty.latitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.uncertainty.longitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-1.uncertainty.longitude/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.longitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-1.value/option-1.uncertainty.longitude/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.longitude/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.uncertainty.longitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.uncertainty.longitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-1.value/option-1.uncertainty.longitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-1.value/option-1.uncertainty.longitude/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-1.uncertainty.longitude/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-1.uncertainty.longitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-1.uncertainty.longitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-1.uncertainty.longitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.kind
Type: string; required in containing object
const: "cartesian"
### observation.position/option-1.value/option-2.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.x
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.x.value
Type: number; required in containing object
### observation.position/option-1.value/option-2.x.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.x.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-2.x.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.x.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-1.value/option-2.x.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-1.value/option-2.x.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.x.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-1.value/option-2.x.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.x.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.x.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.x.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.x.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.x.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-1.value/option-2.x.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.x.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.x.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.x.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.x.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-1.value/option-2.x.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-1.value/option-2.x.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.x.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-1.value/option-2.x.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.x.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.x.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.x.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.y
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.y.value
Type: number; required in containing object
### observation.position/option-1.value/option-2.y.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.y.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-2.y.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.y.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-1.value/option-2.y.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-1.value/option-2.y.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.y.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-1.value/option-2.y.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.y.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.y.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.y.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.y.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.y.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-1.value/option-2.y.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.y.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.y.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.y.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.y.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-1.value/option-2.y.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-1.value/option-2.y.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.y.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-1.value/option-2.y.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.y.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.y.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.y.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.z
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.z.value
Type: number; required in containing object
### observation.position/option-1.value/option-2.z.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.z.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-1.value/option-2.z.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.z.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-1.value/option-2.z.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-1.value/option-2.z.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.z.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-1.value/option-2.z.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.z.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.z.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.z.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.z.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.z.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-1.value/option-2.z.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.z.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.z.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.z.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.value/option-2.z.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-1.value/option-2.z.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-1.value/option-2.z.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-1.value/option-2.z.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-1.value/option-2.z.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-1.value/option-2.z.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.value/option-2.z.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.value/option-2.z.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.sourceRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.selection
Type: object; optional
Extra fields: Not allowed in this object
### observation.position/option-1.selection.assertionRef
Type: string; required in containing object
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.selection.consideredAssertionRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-1.selection.consideredAssertionRefs[]
Type: string
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-1.selection.methodRef
Type: string; required in containing object
pattern: "^method:[^\\s:]+(?![\\s\\S])"
### observation.position/option-1.selection.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.selection.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-1.selection.evaluatedAt
Type: string; required in containing object
### observation.position/option-1.selection.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.position/option-1.selection.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.position/option-1.selection.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.position/option-1.selection.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.position/option-1.selection.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.state
Type: string; required in containing object
const: "approximate"
### observation.position/option-2.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.latitude
Type: number; required in containing object
minimum: -90
maximum: 90
### observation.position/option-2.value/option-1.longitude
Type: number; required in containing object
minimum: -180
maximum: 180
### observation.position/option-2.value/option-1.kind
Type: string; required in containing object
const: "geodetic"
### observation.position/option-2.value/option-1.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.altitude
Type: object; optional
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.altitude.value
Type: number; required in containing object
### observation.position/option-2.value/option-1.altitude.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.altitude.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-1.altitude.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.altitude.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-2.value/option-1.altitude.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.altitude.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.altitude.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.altitude.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-2.value/option-1.altitude.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-2.value/option-1.altitude.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.altitude.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.altitude.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.altitude.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.altitude.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.uncertainty
Type: object; optional
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.latitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-1.uncertainty.latitude/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.latitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-2.value/option-1.uncertainty.latitude/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.latitude/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.uncertainty.latitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.uncertainty.latitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-2.value/option-1.uncertainty.latitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-2.value/option-1.uncertainty.latitude/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.latitude/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.uncertainty.latitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.uncertainty.latitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.uncertainty.latitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.uncertainty.longitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-1.uncertainty.longitude/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.longitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-2.value/option-1.uncertainty.longitude/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.longitude/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.uncertainty.longitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.uncertainty.longitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-2.value/option-1.uncertainty.longitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-2.value/option-1.uncertainty.longitude/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-1.uncertainty.longitude/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-1.uncertainty.longitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-1.uncertainty.longitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-1.uncertainty.longitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.kind
Type: string; required in containing object
const: "cartesian"
### observation.position/option-2.value/option-2.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.x
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.x.value
Type: number; required in containing object
### observation.position/option-2.value/option-2.x.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.x.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-2.x.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.x.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-2.value/option-2.x.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-2.value/option-2.x.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.x.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-2.value/option-2.x.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.x.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.x.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.x.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.x.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.x.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-2.value/option-2.x.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.x.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.x.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.x.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.x.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-2.value/option-2.x.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-2.value/option-2.x.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.x.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-2.value/option-2.x.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.x.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.x.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.x.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.y
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.y.value
Type: number; required in containing object
### observation.position/option-2.value/option-2.y.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.y.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-2.y.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.y.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-2.value/option-2.y.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-2.value/option-2.y.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.y.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-2.value/option-2.y.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.y.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.y.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.y.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.y.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.y.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-2.value/option-2.y.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.y.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.y.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.y.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.y.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-2.value/option-2.y.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-2.value/option-2.y.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.y.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-2.value/option-2.y.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.y.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.y.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.y.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.z
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.z.value
Type: number; required in containing object
### observation.position/option-2.value/option-2.z.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.z.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.position/option-2.value/option-2.z.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.z.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.position/option-2.value/option-2.z.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.position/option-2.value/option-2.z.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.z.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.position/option-2.value/option-2.z.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.z.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.z.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.z.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.z.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.z.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.position/option-2.value/option-2.z.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.z.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.z.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.z.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.value/option-2.z.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.position/option-2.value/option-2.z.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.position/option-2.value/option-2.z.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-2.value/option-2.z.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.position/option-2.value/option-2.z.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.position/option-2.value/option-2.z.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.value/option-2.z.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.value/option-2.z.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.selection
Type: object; optional
Extra fields: Not allowed in this object
### observation.position/option-2.selection.assertionRef
Type: string; required in containing object
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.selection.consideredAssertionRefs
Type: list of string; required in containing object
minItems: 1
### observation.position/option-2.selection.consideredAssertionRefs[]
Type: string
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.position/option-2.selection.methodRef
Type: string; required in containing object
pattern: "^method:[^\\s:]+(?![\\s\\S])"
### observation.position/option-2.selection.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.selection.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.selection.evaluatedAt
Type: string; required in containing object
### observation.position/option-2.selection.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.position/option-2.selection.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.position/option-2.selection.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.position/option-2.selection.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.position/option-2.selection.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-2.precision
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.position/option-3
Type: object
Extra fields: Not allowed in this object
### observation.position/option-3.state
Type: string; required in containing object
const: "unknown"
### observation.position/option-3.reason
Type: string; required in containing object
enum: ["not_recorded","not_collected","unavailable"]
### observation.position/option-4
Type: object
Extra fields: Not allowed in this object
### observation.position/option-4.state
Type: string; required in containing object
const: "redacted"
### observation.position/option-4.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.sources
Type: list of object; required in containing object
### observation.sources[]
Type: object
Extra fields: Not allowed in this object
### observation.sources[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.sources[].kind
Type: string; required in containing object
enum: ["document","testimony","instrument_data","other","unknown"]
### observation.sources[].access
Type: string; required in containing object
enum: ["public","restricted","withheld","unknown"]
### observation.sources[].title
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.sources[].uri
Type: string; optional
format: "uri"
### observation.sources[].digest
Type: object; optional
Extra fields: Not allowed in this object
### observation.sources[].digest.algorithm
Type: string; required in containing object
const: "sha256"
### observation.sources[].digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation.products
Type: list of choice; required in containing object
### observation.products[]
Type: choice
Choose: Exactly one of the alternatives below
### observation.products[]/option-1
Type: object
Extra fields: Not allowed in this object
### observation.products[]/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.products[]/option-1.format
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.products[]/option-1.access
Type: string; required in containing object
enum: ["public","restricted","withheld","unknown"]
### observation.products[]/option-1.uri
Type: string; optional
format: "uri"
### observation.products[]/option-1.digest
Type: object; optional
Extra fields: Not allowed in this object
### observation.products[]/option-1.digest.algorithm
Type: string; required in containing object
const: "sha256"
### observation.products[]/option-1.digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation.products[]/option-1.kind
Type: string; required in containing object
const: "raw"
### observation.products[]/option-1.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.products[]/option-1.sourceRefs[]
Type: string
pattern: "^(?:source):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.products[]/option-2
Type: object
Extra fields: Not allowed in this object
### observation.products[]/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.products[]/option-2.format
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.products[]/option-2.access
Type: string; required in containing object
enum: ["public","restricted","withheld","unknown"]
### observation.products[]/option-2.uri
Type: string; optional
format: "uri"
### observation.products[]/option-2.digest
Type: object; optional
Extra fields: Not allowed in this object
### observation.products[]/option-2.digest.algorithm
Type: string; required in containing object
const: "sha256"
### observation.products[]/option-2.digest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation.products[]/option-2.kind
Type: string; required in containing object
const: "derived"
### observation.products[]/option-2.generatedBy
Type: string; required in containing object
pattern: "^(?:process):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.methods
Type: list of object; required in containing object
### observation.methods[]
Type: object
Extra fields: Not allowed in this object
### observation.methods[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.methods[].version
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.methods[].description
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.methods[].uri
Type: string; optional
format: "uri"
### observation.frames
Type: list of choice; required in containing object
### observation.frames[]
Type: choice
Choose: Exactly one of the alternatives below
### observation.frames[]/option-1
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.frames[]/option-1.kind
Type: string; required in containing object
const: "geodetic"
### observation.frames[]/option-1.definition
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.frames[]/option-1.definition/option-1
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.definition/option-1.state
Type: string; required in containing object
const: "identified"
### observation.frames[]/option-1.definition/option-1.authority
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.definition/option-1.code
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.definition/option-1.revision
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.definition/option-2
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.definition/option-2.state
Type: string; required in containing object
const: "described"
### observation.frames[]/option-1.definition/option-2.description
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.definition/option-3
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.definition/option-3.state
Type: string; required in containing object
const: "unknown"
### observation.frames[]/option-1.definition/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.angularUnit
Type: string; required in containing object
const: "deg"
### observation.frames[]/option-1.vertical
Type: object; optional
Extra fields: Not allowed in this object
### observation.frames[]/option-1.vertical.definition
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.frames[]/option-1.vertical.definition/option-1
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.vertical.definition/option-1.state
Type: string; required in containing object
const: "identified"
### observation.frames[]/option-1.vertical.definition/option-1.authority
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.vertical.definition/option-1.code
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.vertical.definition/option-1.revision
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.vertical.definition/option-2
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.vertical.definition/option-2.state
Type: string; required in containing object
const: "described"
### observation.frames[]/option-1.vertical.definition/option-2.description
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.vertical.definition/option-3
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-1.vertical.definition/option-3.state
Type: string; required in containing object
const: "unknown"
### observation.frames[]/option-1.vertical.definition/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-1.vertical.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-2
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.frames[]/option-2.kind
Type: string; required in containing object
const: "cartesian"
### observation.frames[]/option-2.definition
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.frames[]/option-2.definition/option-1
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-2.definition/option-1.state
Type: string; required in containing object
const: "identified"
### observation.frames[]/option-2.definition/option-1.authority
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-2.definition/option-1.code
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-2.definition/option-1.revision
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.frames[]/option-2.definition/option-2
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-2.definition/option-2.state
Type: string; required in containing object
const: "described"
### observation.frames[]/option-2.definition/option-2.description
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-2.definition/option-3
Type: object
Extra fields: Not allowed in this object
### observation.frames[]/option-2.definition/option-3.state
Type: string; required in containing object
const: "unknown"
### observation.frames[]/option-2.definition/option-3.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.frames[]/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions
Type: list of choice; required in containing object
### observation.assertions[]
Type: choice
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-1.field
Type: string; required in containing object
const: "eventTime"
### observation.assertions[]/option-1.value
Type: choice; required in containing object
Choose: At least one of the alternatives below
### observation.assertions[]/option-1.value/option-1
Type: choice
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-1.value/option-1/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-1/option-1.kind
Type: string; required in containing object
const: "year"
### observation.assertions[]/option-1.value/option-1/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.assertions[]/option-1.value/option-1/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-1/option-2.kind
Type: string; required in containing object
const: "month"
### observation.assertions[]/option-1.value/option-1/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.assertions[]/option-1.value/option-1/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-1/option-3.kind
Type: string; required in containing object
const: "date"
### observation.assertions[]/option-1.value/option-1/option-3.value
Type: string; required in containing object
### observation.assertions[]/option-1.value/option-1/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.assertions[]/option-1.value/option-1/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.assertions[]/option-1.value/option-1/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-1/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.assertions[]/option-1.value/option-1/option-4.value
Type: string; required in containing object
### observation.assertions[]/option-1.value/option-1/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.assertions[]/option-1.value/option-1/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.assertions[]/option-1.value/option-1/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.assertions[]/option-1.value/option-1/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.assertions[]/option-1.value/option-1/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.assertions[]/option-1.value/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.kind
Type: string; required in containing object
const: "interval"
### observation.assertions[]/option-1.value/option-2.start
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-1.value/option-2.start/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.start/option-1.kind
Type: string; required in containing object
const: "year"
### observation.assertions[]/option-1.value/option-2.start/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.assertions[]/option-1.value/option-2.start/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.start/option-2.kind
Type: string; required in containing object
const: "month"
### observation.assertions[]/option-1.value/option-2.start/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.assertions[]/option-1.value/option-2.start/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.start/option-3.kind
Type: string; required in containing object
const: "date"
### observation.assertions[]/option-1.value/option-2.start/option-3.value
Type: string; required in containing object
### observation.assertions[]/option-1.value/option-2.start/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.assertions[]/option-1.value/option-2.start/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.assertions[]/option-1.value/option-2.start/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.start/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.assertions[]/option-1.value/option-2.start/option-4.value
Type: string; required in containing object
### observation.assertions[]/option-1.value/option-2.start/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.assertions[]/option-1.value/option-2.start/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.assertions[]/option-1.value/option-2.start/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.assertions[]/option-1.value/option-2.start/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.assertions[]/option-1.value/option-2.start/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.assertions[]/option-1.value/option-2.end
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-1.value/option-2.end/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.end/option-1.kind
Type: string; required in containing object
const: "year"
### observation.assertions[]/option-1.value/option-2.end/option-1.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}$"
### observation.assertions[]/option-1.value/option-2.end/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.end/option-2.kind
Type: string; required in containing object
const: "month"
### observation.assertions[]/option-1.value/option-2.end/option-2.value
Type: string; required in containing object
pattern: "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$"
### observation.assertions[]/option-1.value/option-2.end/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.end/option-3.kind
Type: string; required in containing object
const: "date"
### observation.assertions[]/option-1.value/option-2.end/option-3.value
Type: string; required in containing object
### observation.assertions[]/option-1.value/option-2.end/option-3.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
### observation.assertions[]/option-1.value/option-2.end/option-3.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.assertions[]/option-1.value/option-2.end/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.value/option-2.end/option-4.kind
Type: string; required in containing object
const: "instant"
### observation.assertions[]/option-1.value/option-2.end/option-4.value
Type: string; required in containing object
### observation.assertions[]/option-1.value/option-2.end/option-4.value/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.assertions[]/option-1.value/option-2.end/option-4.value/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.assertions[]/option-1.value/option-2.end/option-4.value/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.assertions[]/option-1.value/option-2.end/option-4.value/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.assertions[]/option-1.value/option-2.end/option-4.timeScale
Type: string; required in containing object
const: "UTC"
### observation.assertions[]/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### observation.assertions[]/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation.assertions[]/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### observation.assertions[]/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### observation.assertions[]/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### observation.assertions[]/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### observation.assertions[]/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### observation.assertions[]/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.field
Type: string; required in containing object
const: "position"
### observation.assertions[]/option-2.value
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.latitude
Type: number; required in containing object
minimum: -90
maximum: 90
### observation.assertions[]/option-2.value/option-1.longitude
Type: number; required in containing object
minimum: -180
maximum: 180
### observation.assertions[]/option-2.value/option-1.kind
Type: string; required in containing object
const: "geodetic"
### observation.assertions[]/option-2.value/option-1.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.altitude
Type: object; optional
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.altitude.value
Type: number; required in containing object
### observation.assertions[]/option-2.value/option-1.altitude.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.altitude.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.uncertainty
Type: object; optional
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.latitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-1.uncertainty.longitude/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.kind
Type: string; required in containing object
const: "cartesian"
### observation.assertions[]/option-2.value/option-2.frameRef
Type: string; required in containing object
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.x
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.x.value
Type: number; required in containing object
### observation.assertions[]/option-2.value/option-2.x.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.x.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.x.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.y
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.y.value
Type: number; required in containing object
### observation.assertions[]/option-2.value/option-2.y.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.y.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.y.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.z
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.z.value
Type: number; required in containing object
### observation.assertions[]/option-2.value/option-2.z.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.z.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-2.value/option-2.z.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.provenance.sourceRef
Type: string; required in containing object
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-2.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### observation.assertions[]/option-2.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation.assertions[]/option-2.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-2.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### observation.assertions[]/option-2.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### observation.assertions[]/option-2.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### observation.assertions[]/option-2.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-2.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-2.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### observation.assertions[]/option-2.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### observation.assertions[]/option-2.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-2.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-3.field
Type: string; required in containing object
const: "measurement"
### observation.assertions[]/option-3.measurementId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-3.value
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.value.value
Type: number; required in containing object
### observation.assertions[]/option-3.value.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-3.value.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-3.value.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.value.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.assertions[]/option-3.value.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.assertions[]/option-3.value.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.value.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.assertions[]/option-3.value.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-3.value.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-3.value.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-3.value.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-3.value.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.value.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.assertions[]/option-3.value.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-3.value.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-3.value.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-3.value.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-3.value.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.assertions[]/option-3.value.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.assertions[]/option-3.value.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.value.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.assertions[]/option-3.value.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-3.value.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-3.value.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.assertions[]/option-3.value.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-3.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.provenance.sourceRef
Type: string; required in containing object
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.assertions[]/option-3.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### observation.assertions[]/option-3.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### observation.assertions[]/option-3.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### observation.assertions[]/option-3.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### observation.assertions[]/option-3.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### observation.assertions[]/option-3.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### observation.assertions[]/option-3.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-3.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### observation.assertions[]/option-3.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### observation.assertions[]/option-3.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### observation.assertions[]/option-3.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### observation.assertions[]/option-3.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.assertions[]/option-3.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### observation.measurements
Type: list of object; required in containing object
### observation.measurements[]
Type: object
Extra fields: Not allowed in this object
### observation.measurements[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].quantity
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].value
Type: object; required in containing object
Extra fields: Not allowed in this object
### observation.measurements[].value.value
Type: number; required in containing object
### observation.measurements[].value.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].value.uncertainty
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### observation.measurements[].value.uncertainty/option-1
Type: object
Extra fields: Not allowed in this object
### observation.measurements[].value.uncertainty/option-1.kind
Type: string; required in containing object
const: "unknown"
### observation.measurements[].value.uncertainty/option-1.reason
Type: string; required in containing object
enum: ["not_reported","not_characterized","unavailable"]
### observation.measurements[].value.uncertainty/option-2
Type: object
Extra fields: Not allowed in this object
### observation.measurements[].value.uncertainty/option-2.kind
Type: string; required in containing object
const: "standard"
### observation.measurements[].value.uncertainty/option-2.magnitude
Type: number; required in containing object
minimum: 0
### observation.measurements[].value.uncertainty/option-2.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].value.uncertainty/option-2.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.measurements[].value.uncertainty/option-2.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].value.uncertainty/option-3
Type: object
Extra fields: Not allowed in this object
### observation.measurements[].value.uncertainty/option-3.kind
Type: string; required in containing object
const: "expanded"
### observation.measurements[].value.uncertainty/option-3.magnitude
Type: number; required in containing object
minimum: 0
### observation.measurements[].value.uncertainty/option-3.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].value.uncertainty/option-3.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.measurements[].value.uncertainty/option-3.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].value.uncertainty/option-3.coverageFactor
Type: number; required in containing object
exclusiveMinimum: 0
### observation.measurements[].value.uncertainty/option-3.coverageProbability
Type: number; optional
exclusiveMinimum: 0
maximum: 1
### observation.measurements[].value.uncertainty/option-4
Type: object
Extra fields: Not allowed in this object
### observation.measurements[].value.uncertainty/option-4.kind
Type: string; required in containing object
const: "bound"
### observation.measurements[].value.uncertainty/option-4.magnitude
Type: number; required in containing object
minimum: 0
### observation.measurements[].value.uncertainty/option-4.unit
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].value.uncertainty/option-4.sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.measurements[].value.uncertainty/option-4.sourceRefs[]
Type: string
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].sourceRefs
Type: list of string; required in containing object
minItems: 1
### observation.measurements[].sourceRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].frameRef
Type: string; optional
pattern: "^(?:frame):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].selection
Type: object; optional
Extra fields: Not allowed in this object
### observation.measurements[].selection.assertionRef
Type: string; required in containing object
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].selection.consideredAssertionRefs
Type: list of string; required in containing object
minItems: 1
### observation.measurements[].selection.consideredAssertionRefs[]
Type: string
pattern: "^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.measurements[].selection.methodRef
Type: string; required in containing object
pattern: "^method:[^\\s:]+(?![\\s\\S])"
### observation.measurements[].selection.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].selection.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.measurements[].selection.evaluatedAt
Type: string; required in containing object
### observation.measurements[].selection.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.measurements[].selection.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.measurements[].selection.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.measurements[].selection.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.measurements[].selection.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.processing
Type: list of object; required in containing object
### observation.processing[]
Type: object
Extra fields: Not allowed in this object
### observation.processing[].id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.processing[].methodRef
Type: string; required in containing object
pattern: "^(?:method):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.processing[].methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.processing[].performedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### observation.processing[].performedAt
Type: string; required in containing object
### observation.processing[].performedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### observation.processing[].performedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### observation.processing[].performedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### observation.processing[].performedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### observation.processing[].inputRefs
Type: list of string; required in containing object
minItems: 1
### observation.processing[].inputRefs[]
Type: string
pattern: "^(?:source|product|assertion):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.processing[].outputRefs
Type: list of string; required in containing object
minItems: 1
### observation.processing[].outputRefs[]
Type: string
pattern: "^(?:product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observation.extensions
Type: object; optional
### observation.extensions/keys
Type: string
pattern: "^[a-z][a-z0-9_-]*(?:\\.[a-z0-9_-]+)+(?![\\s\\S])"
### observation.extensions/value
Type: JSON value
Reference: #/$defs/__schema29
Value: Arbitrary JSON; extension contents are not semantically checked by the core.
### claims
Type: list of choice; required in containing object
Source statements and reviewer assessments, with explicit subjects and inputs.
### claims[]
Type: choice
Choose: At least one of the alternatives below
### claims[]/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.recordedAt
Type: string; required in containing object
### claims[]/option-1.recordedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-1.recordedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-1.recordedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-1.recordedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-1.topic
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-1.subject
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-1.subject/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-1.kind
Type: string; required in containing object
const: "observation"
### claims[]/option-1.subject/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.kind
Type: string; required in containing object
const: "entity"
### claims[]/option-1.subject/option-2.reference
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:research-entities:0.1.0"
### claims[]/option-1.subject/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-1.subject/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "witness"
### claims[]/option-1.subject/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-1.field
Type: string; optional
enum: ["publicIdentity","anonymous","willingToBeIdentified","category","role","organization","experienceYears","securityClearance","isProfessionalObserver","hasAviationExperience","hasMilitaryExperience","hasScientificBackground","hasPriorUAPKnowledge","wasSkepticPrior","description"]
### claims[]/option-1.subject/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "account"
### claims[]/option-1.subject/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-2.field
Type: string; optional
enum: ["speakerWitnessIds","recorder","context","recordedTime","dateCertainty","eventContext","content","summary","sourceDocument","interviewAvailable","writtenReportAvailable","underOath","custodyStatus","supportRefs"]
### claims[]/option-1.subject/option-2.reference.target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-3.kind
Type: string; required in containing object
const: "procedure"
### claims[]/option-1.subject/option-2.reference.target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-3.field
Type: string; optional
enum: ["procedureType","witnessId","accountId","administered","passed","performedAt","context","sourceDocument"]
### claims[]/option-1.subject/option-2.reference.target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-2.reference.target/option-4.kind
Type: string; required in containing object
const: "witness_group"
### claims[]/option-1.subject/option-2.reference.target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-2.reference.target/option-4.field
Type: string; optional
enum: ["witnessIds","reportedCount","categories","militaryWitnesses","aviationWitnesses","professionalObservers","descriptions"]
### claims[]/option-1.subject/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.kind
Type: string; required in containing object
const: "context"
### claims[]/option-1.subject/option-3.reference
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-3.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### claims[]/option-1.subject/option-3.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-1.subject/option-3.reference.target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-1.subject/option-3.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### claims[]/option-1.subject/option-3.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-3.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### claims[]/option-1.subject/option-3.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.reference.target/option-2.kind
Type: string; required in containing object
const: "reported_object"
### claims[]/option-1.subject/option-3.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-3.reference.target/option-2.field
Type: string; optional
enum: ["shape","sizeDescription","color","secondaryColors","luminosity","sound","soundDescription","surfaceDetails","formation","structuralFeatures","countDescription","speedDescription","altitudeDescription","flightPath","maneuvers","maneuverDescriptions","trajectoryDescription","radarContactReported","infraredSignatureReported"]
### claims[]/option-1.subject/option-3.reference.target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.reference.target/option-3.kind
Type: string; required in containing object
const: "place"
### claims[]/option-1.subject/option-3.reference.target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-3.reference.target/option-3.field
Type: string; optional
enum: ["name","country","countryCode","region","city","address","position","coordinatePrecision","coordinatesApproximate","elevationSource","siteType","secondarySiteTypes","terrain","airspaceClass","proximity","infrastructureSensitivity","sensitivity"]
### claims[]/option-1.subject/option-3.reference.target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.reference.target/option-4.kind
Type: string; required in containing object
const: "platform"
### claims[]/option-1.subject/option-3.reference.target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-3.reference.target/option-4.field
Type: string; optional
enum: ["role","placeId","name","type","designation","callsign","flightNumber","squadron","mission","operator","radarContact","weaponsSystemEngaged","interceptAttempted"]
### claims[]/option-1.subject/option-3.reference.target/option-5
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.reference.target/option-5.kind
Type: string; required in containing object
const: "environment"
### claims[]/option-1.subject/option-3.reference.target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-3.reference.target/option-5.field
Type: string; optional
enum: ["placeId","platformId","temporalId","observedAt","weather","visibility","cloudCover","windDescription","celestialConditions","moonPhase","precipitation"]
### claims[]/option-1.subject/option-3.reference.target/option-6
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.reference.target/option-6.kind
Type: string; required in containing object
const: "temporal"
### claims[]/option-1.subject/option-3.reference.target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-3.reference.target/option-6.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### claims[]/option-1.subject/option-3.reference.target/option-7
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-3.reference.target/option-7.kind
Type: string; required in containing object
const: "collection"
### claims[]/option-1.subject/option-3.reference.target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.subject/option-3.reference.target/option-7.field
Type: string; optional
enum: ["sensorType","detectionMethod","productRefs","acquisitionIds","retentionStatus","rawDataAvailable","anomalies","correlationDescription","alignmentDescription","notes"]
### claims[]/option-1.subject/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.subject/option-4.kind
Type: string; required in containing object
const: "measurement"
### claims[]/option-1.subject/option-4.measurementId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.supersedes
Type: list of string; optional
minItems: 1
### claims[]/option-1.supersedes[]
Type: string
pattern: "^claim:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.kind
Type: string; required in containing object
const: "source_assertion"
### claims[]/option-1.text
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-1.reportedLevel
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-1.provenance
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-1.provenance.sourceRef
Type: string; required in containing object
pattern: "^(?:source|product):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-1.provenance.sourceDigest
Type: object; optional
Extra fields: Not allowed in this object
### claims[]/option-1.provenance.sourceDigest.algorithm
Type: string; required in containing object
const: "sha256"
### claims[]/option-1.provenance.sourceDigest.value
Type: string; required in containing object
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-1.provenance.locator
Type: choice; optional
Choose: Exactly one of the alternatives below
### claims[]/option-1.provenance.locator/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.provenance.locator/option-1.kind
Type: string; required in containing object
const: "page"
### claims[]/option-1.provenance.locator/option-1.page
Type: integer; required in containing object
minimum: 1
maximum: 9007199254740991
### claims[]/option-1.provenance.locator/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.provenance.locator/option-2.kind
Type: string; required in containing object
const: "time_range"
### claims[]/option-1.provenance.locator/option-2.startSeconds
Type: number; required in containing object
minimum: 0
### claims[]/option-1.provenance.locator/option-2.endSeconds
Type: number; required in containing object
minimum: 0
### claims[]/option-1.provenance.locator/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-1.provenance.locator/option-3.kind
Type: string; required in containing object
const: "json_pointer"
### claims[]/option-1.provenance.locator/option-3.pointer
Type: string; required in containing object
pattern: "^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])"
### claims[]/option-1.provenance.attributedTo
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-1.provenance.extractedBy
Type: string; optional
minLength: 1
pattern: "\\S"
### claims[]/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.recordedAt
Type: string; required in containing object
### claims[]/option-2.recordedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-2.recordedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-2.recordedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-2.recordedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-2.topic
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-2.subject
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-2.subject/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-1.kind
Type: string; required in containing object
const: "observation"
### claims[]/option-2.subject/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.kind
Type: string; required in containing object
const: "entity"
### claims[]/option-2.subject/option-2.reference
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:research-entities:0.1.0"
### claims[]/option-2.subject/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-2.subject/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "witness"
### claims[]/option-2.subject/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-1.field
Type: string; optional
enum: ["publicIdentity","anonymous","willingToBeIdentified","category","role","organization","experienceYears","securityClearance","isProfessionalObserver","hasAviationExperience","hasMilitaryExperience","hasScientificBackground","hasPriorUAPKnowledge","wasSkepticPrior","description"]
### claims[]/option-2.subject/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "account"
### claims[]/option-2.subject/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-2.field
Type: string; optional
enum: ["speakerWitnessIds","recorder","context","recordedTime","dateCertainty","eventContext","content","summary","sourceDocument","interviewAvailable","writtenReportAvailable","underOath","custodyStatus","supportRefs"]
### claims[]/option-2.subject/option-2.reference.target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-3.kind
Type: string; required in containing object
const: "procedure"
### claims[]/option-2.subject/option-2.reference.target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-3.field
Type: string; optional
enum: ["procedureType","witnessId","accountId","administered","passed","performedAt","context","sourceDocument"]
### claims[]/option-2.subject/option-2.reference.target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-2.reference.target/option-4.kind
Type: string; required in containing object
const: "witness_group"
### claims[]/option-2.subject/option-2.reference.target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-2.reference.target/option-4.field
Type: string; optional
enum: ["witnessIds","reportedCount","categories","militaryWitnesses","aviationWitnesses","professionalObservers","descriptions"]
### claims[]/option-2.subject/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.kind
Type: string; required in containing object
const: "context"
### claims[]/option-2.subject/option-3.reference
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-3.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### claims[]/option-2.subject/option-3.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-2.subject/option-3.reference.target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-2.subject/option-3.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### claims[]/option-2.subject/option-3.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-3.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### claims[]/option-2.subject/option-3.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.reference.target/option-2.kind
Type: string; required in containing object
const: "reported_object"
### claims[]/option-2.subject/option-3.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-3.reference.target/option-2.field
Type: string; optional
enum: ["shape","sizeDescription","color","secondaryColors","luminosity","sound","soundDescription","surfaceDetails","formation","structuralFeatures","countDescription","speedDescription","altitudeDescription","flightPath","maneuvers","maneuverDescriptions","trajectoryDescription","radarContactReported","infraredSignatureReported"]
### claims[]/option-2.subject/option-3.reference.target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.reference.target/option-3.kind
Type: string; required in containing object
const: "place"
### claims[]/option-2.subject/option-3.reference.target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-3.reference.target/option-3.field
Type: string; optional
enum: ["name","country","countryCode","region","city","address","position","coordinatePrecision","coordinatesApproximate","elevationSource","siteType","secondarySiteTypes","terrain","airspaceClass","proximity","infrastructureSensitivity","sensitivity"]
### claims[]/option-2.subject/option-3.reference.target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.reference.target/option-4.kind
Type: string; required in containing object
const: "platform"
### claims[]/option-2.subject/option-3.reference.target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-3.reference.target/option-4.field
Type: string; optional
enum: ["role","placeId","name","type","designation","callsign","flightNumber","squadron","mission","operator","radarContact","weaponsSystemEngaged","interceptAttempted"]
### claims[]/option-2.subject/option-3.reference.target/option-5
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.reference.target/option-5.kind
Type: string; required in containing object
const: "environment"
### claims[]/option-2.subject/option-3.reference.target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-3.reference.target/option-5.field
Type: string; optional
enum: ["placeId","platformId","temporalId","observedAt","weather","visibility","cloudCover","windDescription","celestialConditions","moonPhase","precipitation"]
### claims[]/option-2.subject/option-3.reference.target/option-6
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.reference.target/option-6.kind
Type: string; required in containing object
const: "temporal"
### claims[]/option-2.subject/option-3.reference.target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-3.reference.target/option-6.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### claims[]/option-2.subject/option-3.reference.target/option-7
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-3.reference.target/option-7.kind
Type: string; required in containing object
const: "collection"
### claims[]/option-2.subject/option-3.reference.target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.subject/option-3.reference.target/option-7.field
Type: string; optional
enum: ["sensorType","detectionMethod","productRefs","acquisitionIds","retentionStatus","rawDataAvailable","anomalies","correlationDescription","alignmentDescription","notes"]
### claims[]/option-2.subject/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.subject/option-4.kind
Type: string; required in containing object
const: "measurement"
### claims[]/option-2.subject/option-4.measurementId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.supersedes
Type: list of string; optional
minItems: 1
### claims[]/option-2.supersedes[]
Type: string
pattern: "^claim:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.kind
Type: string; required in containing object
const: "assessment"
### claims[]/option-2.inputRefs
Type: list of string; required in containing object
### claims[]/option-2.inputRefs[]
Type: string
pattern: "^(?:claim|source|product|assertion|measurement):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs
Type: list of object; optional
### claims[]/option-2.contextInputRefs[]
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### claims[]/option-2.contextInputRefs[].document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-2.contextInputRefs[].target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].target/option-1.kind
Type: string; required in containing object
const: "event"
### claims[]/option-2.contextInputRefs[].target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### claims[]/option-2.contextInputRefs[].target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].target/option-2.kind
Type: string; required in containing object
const: "reported_object"
### claims[]/option-2.contextInputRefs[].target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target/option-2.field
Type: string; optional
enum: ["shape","sizeDescription","color","secondaryColors","luminosity","sound","soundDescription","surfaceDetails","formation","structuralFeatures","countDescription","speedDescription","altitudeDescription","flightPath","maneuvers","maneuverDescriptions","trajectoryDescription","radarContactReported","infraredSignatureReported"]
### claims[]/option-2.contextInputRefs[].target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].target/option-3.kind
Type: string; required in containing object
const: "place"
### claims[]/option-2.contextInputRefs[].target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target/option-3.field
Type: string; optional
enum: ["name","country","countryCode","region","city","address","position","coordinatePrecision","coordinatesApproximate","elevationSource","siteType","secondarySiteTypes","terrain","airspaceClass","proximity","infrastructureSensitivity","sensitivity"]
### claims[]/option-2.contextInputRefs[].target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].target/option-4.kind
Type: string; required in containing object
const: "platform"
### claims[]/option-2.contextInputRefs[].target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target/option-4.field
Type: string; optional
enum: ["role","placeId","name","type","designation","callsign","flightNumber","squadron","mission","operator","radarContact","weaponsSystemEngaged","interceptAttempted"]
### claims[]/option-2.contextInputRefs[].target/option-5
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].target/option-5.kind
Type: string; required in containing object
const: "environment"
### claims[]/option-2.contextInputRefs[].target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target/option-5.field
Type: string; optional
enum: ["placeId","platformId","temporalId","observedAt","weather","visibility","cloudCover","windDescription","celestialConditions","moonPhase","precipitation"]
### claims[]/option-2.contextInputRefs[].target/option-6
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].target/option-6.kind
Type: string; required in containing object
const: "temporal"
### claims[]/option-2.contextInputRefs[].target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target/option-6.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### claims[]/option-2.contextInputRefs[].target/option-7
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.contextInputRefs[].target/option-7.kind
Type: string; required in containing object
const: "collection"
### claims[]/option-2.contextInputRefs[].target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.contextInputRefs[].target/option-7.field
Type: string; optional
enum: ["sensorType","detectionMethod","productRefs","acquisitionIds","retentionStatus","rawDataAvailable","anomalies","correlationDescription","alignmentDescription","notes"]
### claims[]/option-2.contextInputRefs[].assertionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs
Type: list of object; optional
### claims[]/option-2.entityInputRefs[]
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:research-entities:0.1.0"
### claims[]/option-2.entityInputRefs[].document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-2.entityInputRefs[].target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].target/option-1.kind
Type: string; required in containing object
const: "witness"
### claims[]/option-2.entityInputRefs[].target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target/option-1.field
Type: string; optional
enum: ["publicIdentity","anonymous","willingToBeIdentified","category","role","organization","experienceYears","securityClearance","isProfessionalObserver","hasAviationExperience","hasMilitaryExperience","hasScientificBackground","hasPriorUAPKnowledge","wasSkepticPrior","description"]
### claims[]/option-2.entityInputRefs[].target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].target/option-2.kind
Type: string; required in containing object
const: "account"
### claims[]/option-2.entityInputRefs[].target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target/option-2.field
Type: string; optional
enum: ["speakerWitnessIds","recorder","context","recordedTime","dateCertainty","eventContext","content","summary","sourceDocument","interviewAvailable","writtenReportAvailable","underOath","custodyStatus","supportRefs"]
### claims[]/option-2.entityInputRefs[].target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].target/option-3.kind
Type: string; required in containing object
const: "procedure"
### claims[]/option-2.entityInputRefs[].target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target/option-3.field
Type: string; optional
enum: ["procedureType","witnessId","accountId","administered","passed","performedAt","context","sourceDocument"]
### claims[]/option-2.entityInputRefs[].target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-2.entityInputRefs[].target/option-4.kind
Type: string; required in containing object
const: "witness_group"
### claims[]/option-2.entityInputRefs[].target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.entityInputRefs[].target/option-4.field
Type: string; optional
enum: ["witnessIds","reportedCount","categories","militaryWitnesses","aviationWitnesses","professionalObservers","descriptions"]
### claims[]/option-2.entityInputRefs[].assertionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-2.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-2.status
Type: string; required in containing object
const: "unassessed"
### claims[]/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.recordedAt
Type: string; required in containing object
### claims[]/option-3.recordedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-3.recordedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-3.recordedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-3.recordedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-3.topic
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-3.subject
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-3.subject/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-1.kind
Type: string; required in containing object
const: "observation"
### claims[]/option-3.subject/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.kind
Type: string; required in containing object
const: "entity"
### claims[]/option-3.subject/option-2.reference
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:research-entities:0.1.0"
### claims[]/option-3.subject/option-2.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-3.subject/option-2.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-1.kind
Type: string; required in containing object
const: "witness"
### claims[]/option-3.subject/option-2.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-1.field
Type: string; optional
enum: ["publicIdentity","anonymous","willingToBeIdentified","category","role","organization","experienceYears","securityClearance","isProfessionalObserver","hasAviationExperience","hasMilitaryExperience","hasScientificBackground","hasPriorUAPKnowledge","wasSkepticPrior","description"]
### claims[]/option-3.subject/option-2.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-2.kind
Type: string; required in containing object
const: "account"
### claims[]/option-3.subject/option-2.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-2.field
Type: string; optional
enum: ["speakerWitnessIds","recorder","context","recordedTime","dateCertainty","eventContext","content","summary","sourceDocument","interviewAvailable","writtenReportAvailable","underOath","custodyStatus","supportRefs"]
### claims[]/option-3.subject/option-2.reference.target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-3.kind
Type: string; required in containing object
const: "procedure"
### claims[]/option-3.subject/option-2.reference.target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-3.field
Type: string; optional
enum: ["procedureType","witnessId","accountId","administered","passed","performedAt","context","sourceDocument"]
### claims[]/option-3.subject/option-2.reference.target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-2.reference.target/option-4.kind
Type: string; required in containing object
const: "witness_group"
### claims[]/option-3.subject/option-2.reference.target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-2.reference.target/option-4.field
Type: string; optional
enum: ["witnessIds","reportedCount","categories","militaryWitnesses","aviationWitnesses","professionalObservers","descriptions"]
### claims[]/option-3.subject/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.kind
Type: string; required in containing object
const: "context"
### claims[]/option-3.subject/option-3.reference
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.reference.document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.reference.document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-3.reference.document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### claims[]/option-3.subject/option-3.reference.document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-3.subject/option-3.reference.target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-3.subject/option-3.reference.target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.reference.target/option-1.kind
Type: string; required in containing object
const: "event"
### claims[]/option-3.subject/option-3.reference.target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-3.reference.target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### claims[]/option-3.subject/option-3.reference.target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.reference.target/option-2.kind
Type: string; required in containing object
const: "reported_object"
### claims[]/option-3.subject/option-3.reference.target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-3.reference.target/option-2.field
Type: string; optional
enum: ["shape","sizeDescription","color","secondaryColors","luminosity","sound","soundDescription","surfaceDetails","formation","structuralFeatures","countDescription","speedDescription","altitudeDescription","flightPath","maneuvers","maneuverDescriptions","trajectoryDescription","radarContactReported","infraredSignatureReported"]
### claims[]/option-3.subject/option-3.reference.target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.reference.target/option-3.kind
Type: string; required in containing object
const: "place"
### claims[]/option-3.subject/option-3.reference.target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-3.reference.target/option-3.field
Type: string; optional
enum: ["name","country","countryCode","region","city","address","position","coordinatePrecision","coordinatesApproximate","elevationSource","siteType","secondarySiteTypes","terrain","airspaceClass","proximity","infrastructureSensitivity","sensitivity"]
### claims[]/option-3.subject/option-3.reference.target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.reference.target/option-4.kind
Type: string; required in containing object
const: "platform"
### claims[]/option-3.subject/option-3.reference.target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-3.reference.target/option-4.field
Type: string; optional
enum: ["role","placeId","name","type","designation","callsign","flightNumber","squadron","mission","operator","radarContact","weaponsSystemEngaged","interceptAttempted"]
### claims[]/option-3.subject/option-3.reference.target/option-5
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.reference.target/option-5.kind
Type: string; required in containing object
const: "environment"
### claims[]/option-3.subject/option-3.reference.target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-3.reference.target/option-5.field
Type: string; optional
enum: ["placeId","platformId","temporalId","observedAt","weather","visibility","cloudCover","windDescription","celestialConditions","moonPhase","precipitation"]
### claims[]/option-3.subject/option-3.reference.target/option-6
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.reference.target/option-6.kind
Type: string; required in containing object
const: "temporal"
### claims[]/option-3.subject/option-3.reference.target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-3.reference.target/option-6.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### claims[]/option-3.subject/option-3.reference.target/option-7
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-3.reference.target/option-7.kind
Type: string; required in containing object
const: "collection"
### claims[]/option-3.subject/option-3.reference.target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.subject/option-3.reference.target/option-7.field
Type: string; optional
enum: ["sensorType","detectionMethod","productRefs","acquisitionIds","retentionStatus","rawDataAvailable","anomalies","correlationDescription","alignmentDescription","notes"]
### claims[]/option-3.subject/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.subject/option-4.kind
Type: string; required in containing object
const: "measurement"
### claims[]/option-3.subject/option-4.measurementId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.supersedes
Type: list of string; optional
minItems: 1
### claims[]/option-3.supersedes[]
Type: string
pattern: "^claim:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.kind
Type: string; required in containing object
const: "assessment"
### claims[]/option-3.inputRefs
Type: list of string; required in containing object
### claims[]/option-3.inputRefs[]
Type: string
pattern: "^(?:claim|source|product|assertion|measurement):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs
Type: list of object; optional
### claims[]/option-3.contextInputRefs[]
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:observation-context:0.1.0"
### claims[]/option-3.contextInputRefs[].document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-3.contextInputRefs[].target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].target/option-1.kind
Type: string; required in containing object
const: "event"
### claims[]/option-3.contextInputRefs[].target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target/option-1.field
Type: string; optional
enum: ["eventType","description","temporalId","placeIds"]
### claims[]/option-3.contextInputRefs[].target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].target/option-2.kind
Type: string; required in containing object
const: "reported_object"
### claims[]/option-3.contextInputRefs[].target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target/option-2.field
Type: string; optional
enum: ["shape","sizeDescription","color","secondaryColors","luminosity","sound","soundDescription","surfaceDetails","formation","structuralFeatures","countDescription","speedDescription","altitudeDescription","flightPath","maneuvers","maneuverDescriptions","trajectoryDescription","radarContactReported","infraredSignatureReported"]
### claims[]/option-3.contextInputRefs[].target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].target/option-3.kind
Type: string; required in containing object
const: "place"
### claims[]/option-3.contextInputRefs[].target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target/option-3.field
Type: string; optional
enum: ["name","country","countryCode","region","city","address","position","coordinatePrecision","coordinatesApproximate","elevationSource","siteType","secondarySiteTypes","terrain","airspaceClass","proximity","infrastructureSensitivity","sensitivity"]
### claims[]/option-3.contextInputRefs[].target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].target/option-4.kind
Type: string; required in containing object
const: "platform"
### claims[]/option-3.contextInputRefs[].target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target/option-4.field
Type: string; optional
enum: ["role","placeId","name","type","designation","callsign","flightNumber","squadron","mission","operator","radarContact","weaponsSystemEngaged","interceptAttempted"]
### claims[]/option-3.contextInputRefs[].target/option-5
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].target/option-5.kind
Type: string; required in containing object
const: "environment"
### claims[]/option-3.contextInputRefs[].target/option-5.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target/option-5.field
Type: string; optional
enum: ["placeId","platformId","temporalId","observedAt","weather","visibility","cloudCover","windDescription","celestialConditions","moonPhase","precipitation"]
### claims[]/option-3.contextInputRefs[].target/option-6
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].target/option-6.kind
Type: string; required in containing object
const: "temporal"
### claims[]/option-3.contextInputRefs[].target/option-6.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target/option-6.field
Type: string; optional
enum: ["eventTime","calendarPeriod","relativeDate","calendarRange","localTime","dateCertainty","timeCertainty","timeOfDay","durationDescription","display","notes","rangeInclusivity"]
### claims[]/option-3.contextInputRefs[].target/option-7
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.contextInputRefs[].target/option-7.kind
Type: string; required in containing object
const: "collection"
### claims[]/option-3.contextInputRefs[].target/option-7.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.contextInputRefs[].target/option-7.field
Type: string; optional
enum: ["sensorType","detectionMethod","productRefs","acquisitionIds","retentionStatus","rawDataAvailable","anomalies","correlationDescription","alignmentDescription","notes"]
### claims[]/option-3.contextInputRefs[].assertionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs
Type: list of object; optional
### claims[]/option-3.entityInputRefs[]
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].document
Type: object; required in containing object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].document.documentId
Type: string; required in containing object
ID inside the supplied document; not a URL.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].document.schemaId
Type: string; required in containing object
const: "urn:disclosureos:experimental:research-entities:0.1.0"
### claims[]/option-3.entityInputRefs[].document.sha256
Type: string; required in containing object
SHA-256 of exact supplied document bytes.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### claims[]/option-3.entityInputRefs[].target/option-1
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].target/option-1.kind
Type: string; required in containing object
const: "witness"
### claims[]/option-3.entityInputRefs[].target/option-1.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target/option-1.field
Type: string; optional
enum: ["publicIdentity","anonymous","willingToBeIdentified","category","role","organization","experienceYears","securityClearance","isProfessionalObserver","hasAviationExperience","hasMilitaryExperience","hasScientificBackground","hasPriorUAPKnowledge","wasSkepticPrior","description"]
### claims[]/option-3.entityInputRefs[].target/option-2
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].target/option-2.kind
Type: string; required in containing object
const: "account"
### claims[]/option-3.entityInputRefs[].target/option-2.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target/option-2.field
Type: string; optional
enum: ["speakerWitnessIds","recorder","context","recordedTime","dateCertainty","eventContext","content","summary","sourceDocument","interviewAvailable","writtenReportAvailable","underOath","custodyStatus","supportRefs"]
### claims[]/option-3.entityInputRefs[].target/option-3
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].target/option-3.kind
Type: string; required in containing object
const: "procedure"
### claims[]/option-3.entityInputRefs[].target/option-3.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target/option-3.field
Type: string; optional
enum: ["procedureType","witnessId","accountId","administered","passed","performedAt","context","sourceDocument"]
### claims[]/option-3.entityInputRefs[].target/option-4
Type: object
Extra fields: Not allowed in this object
### claims[]/option-3.entityInputRefs[].target/option-4.kind
Type: string; required in containing object
const: "witness_group"
### claims[]/option-3.entityInputRefs[].target/option-4.id
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.entityInputRefs[].target/option-4.field
Type: string; optional
enum: ["witnessIds","reportedCount","categories","militaryWitnesses","aviationWitnesses","professionalObservers","descriptions"]
### claims[]/option-3.entityInputRefs[].assertionId
Type: string; required in containing object
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.rationale
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-3.status
Type: string; required in containing object
const: "assessed"
### claims[]/option-3.outcome
Type: string; required in containing object
enum: ["reported","confirmed","absent","inconclusive"]
### claims[]/option-3.evaluatedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-3.evaluatedAt
Type: string; required in containing object
### claims[]/option-3.evaluatedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### claims[]/option-3.evaluatedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### claims[]/option-3.evaluatedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### claims[]/option-3.evaluatedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### claims[]/option-3.methodRef
Type: string; required in containing object
pattern: "^method:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### claims[]/option-3.methodVersion
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### claims[]/option-3.confidence
Type: number; optional
minimum: 0
maximum: 1
### claims[]/option-3.witnessReview
Type: object; optional
Attributable interpretation, separate from sourced qualifications; requires explicit inputs.
Extra fields: Not allowed in this object
### claims[]/option-3.witnessReview.rating
Type: string; optional
Qualitative confidence magnitude.
enum: ["very_high","high","moderate","low","very_low","unassessed"]
### claims[]/option-3.witnessReview.factors
Type: list of string; optional
Reviewer-selected factor labels; no built-in weighting or validation of their truth.
### claims[]/option-3.witnessReview.factors[]
Type: string
A factor strengthening witness credibility.
enum: ["professional_training","official_capacity","sworn_statement","contemporaneous_record","corroborating_witnesses","corroborating_evidence","consistent_account","no_apparent_motive","reputation_risk","security_clearance"]
### claims[]/option-3.witnessReview.detractors
Type: list of string; optional
Retained vocabulary for attributable reviews. Anonymity never adds a penalty automatically.
### claims[]/option-3.witnessReview.detractors[]
Type: string
A factor weakening witness credibility.
enum: ["anonymous","inconsistent_account","delayed_report","known_fabricator","financial_motive","single_witness","impaired_state","recovered_memory"]
### claims[]/option-3.witnessReview.consistentTestimony
Type: string; optional
enum: ["consistent","inconsistent","unknown"]
### claims[]/option-3.witnessReview.multipleIndependent
Type: string; optional
enum: ["independent","not_independent","unknown"]
### claims[]/option-3.witnessReview.notes
Type: string; optional
minLength: 1
pattern: "\\S"
### extensions
Type: object; optional
Namespaced extra JSON, outside the typed domain fields.
### extensions/keys
Type: string
pattern: "^[a-z][a-z0-9_-]*(?:\\.[a-z0-9_-]+)+(?![\\s\\S])"
### extensions/value
Type: JSON value
Reference: #/$defs/__schema29
Value: Arbitrary JSON; extension contents are not semantically checked by the core.
## Testimony selection
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
Identify which accounts the provenance check should examine.
Schema: urn:disclosureos:experimental:historical-testimony-selection:0.1.0
Export: @disclosureos/schema/experimental/v2/historical-testimony/schema
### kind
Type: string; required in containing object
Identifies the selection document.
const: "historical_testimony_selection"
### schemaVersion
Type: string; required in containing object
The selection contract version.
const: "0.1.0"
### id
Type: string; required in containing object
An identifier for this selection.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### historyId
Type: string; required in containing object
The exact ID of the supplied claim history.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### observationId
Type: string; required in containing object
The exact ID of its embedded observation.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### accounts
Type: list of object; required in containing object
Selected testimony sources with their recording authority and citation, or an explicit unknown reason.
minItems: 1
### accounts[]
Type: object
Extra fields: Not allowed in this object
### accounts[].sourceRef
Type: string; required in containing object
pattern: "^source:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### accounts[].recording
Type: choice; required in containing object
Choose: Exactly one of the alternatives below
### accounts[].recording/option-1
Type: object
Extra fields: Not allowed in this object
### accounts[].recording/option-1.state
Type: string; required in containing object
const: "known"
### accounts[].recording/option-1.recordedBy
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### accounts[].recording/option-1.reference
Type: string; required in containing object
minLength: 1
pattern: "\\S"
### accounts[].recording/option-2
Type: object
Extra fields: Not allowed in this object
### accounts[].recording/option-2.state
Type: string; required in containing object
const: "unknown"
### accounts[].recording/option-2.reason
Type: string; required in containing object
minLength: 1
pattern: "\\S"
# Vocabulary fields (/v2/docs/reference/vocabulary)
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
Shared by [Observables](/v2/docs/observables) and [Origins](/v2/docs/origins). Both guides use these same catalog, term-reference and claim-connection documents.
## Catalog snapshot
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
Retain a vocabulary's identity, revision, terms and publication declarations.
Schema: urn:disclosureos:experimental:vocabulary-catalog:0.1.0
Export: @disclosureos/records/experimental/v2/vocabulary-catalog/schema/0.1.0
### kind
Type: string; required in containing object
Identifies a vocabulary catalog document.
const: "vocabulary_catalog"
### schemaVersion
Type: string; required in containing object
The catalog contract version, separate from its revision and npm version.
const: "0.1.0"
### id
Type: string; required in containing object
ID of this catalog document.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### catalogId
Type: string; required in containing object
Authority-qualified identity of the vocabulary. This is an identifier, not a URL the evaluator fetches.
pattern: "^(?:urn:[A-Za-z0-9][A-Za-z0-9-]*:[^\\s]+|https:\\/\\/[^\\s/?#]+(?:\\/[^\\s]*)?)(?![\\s\\S])"
### revision
Type: string; required in containing object
Immutable catalog revision. The moving label latest is rejected.
### revision/constraint-1
Type: string
minLength: 1
pattern: "\\S"
### revision/constraint-2
Type: value
### revision/constraint-2/constraint-1
Type: value
pattern: "\\S"
### revision/constraint-2/constraint-2
Type: value
pattern: "^(?![ \\t\\r\\n]*[Ll][Aa][Tt][Ee][Ss][Tt][ \\t\\r\\n]*$)[\\s\\S]+$"
### publishedBy
Type: string; required in containing object
Declared publisher; parsing does not authenticate this identity.
minLength: 1
pattern: "\\S"
### publishedAt
Type: string; required in containing object
When this revision was declared published.
### publishedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### publishedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### publishedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### publishedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### terms
Type: list of object; required in containing object
Nonempty list of terms. IDs and supplied short codes must be unique within the catalog.
minItems: 1
### terms[]
Type: object
Extra fields: Not allowed in this object
### terms[].id
Type: string; required in containing object
Stable term identifier within this catalog.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### terms[].label
Type: string; required in containing object
Human-readable term name.
minLength: 1
pattern: "\\S"
### terms[].description
Type: string; required in containing object
Definition of the characteristic or hypothesis, not a finding that it occurred.
minLength: 1
pattern: "\\S"
### terms[].code
Type: string; optional
Optional short display code; not the term's identity.
minLength: 1
pattern: "\\S"
### terms[].category
Type: string; optional
Optional grouping label, not an origin conclusion.
minLength: 1
pattern: "\\S"
### terms[].extensions
Type: object; optional
Namespaced domain metadata. Use readObservableTermDefinition to read and validate observable-specific context, methods and qualifications.
### terms[].extensions/keys
Type: string
pattern: "^[a-z][a-z0-9_-]*(?:\\.[a-z0-9_-]+)+(?![\\s\\S])"
### terms[].extensions/value
Type: JSON value
Reference: #/$defs/__schema4
Value: Arbitrary JSON; extension contents are not semantically checked by the core.
### extensions
Type: object; optional
Namespaced additional JSON. Core vocabulary checks do not validate its domain meaning.
### extensions/keys
Type: string
pattern: "^[a-z][a-z0-9_-]*(?:\\.[a-z0-9_-]+)+(?![\\s\\S])"
### extensions/value
Type: JSON value
Reference: #/$defs/__schema4
Value: Arbitrary JSON; extension contents are not semantically checked by the core.
## Term reference
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
Identify one term in one exact catalog snapshot. This object is nested in a binding; it is not a claim.
Schema: urn:disclosureos:experimental:vocabulary-term-reference:0.1.0
Export: @disclosureos/records/experimental/v2/vocabulary-term-reference/schema/0.1.0
### catalogId
Type: string; required in containing object
Authority-qualified identity of the vocabulary. This is an identifier, not a URL the evaluator fetches.
pattern: "^(?:urn:[A-Za-z0-9][A-Za-z0-9-]*:[^\\s]+|https:\\/\\/[^\\s/?#]+(?:\\/[^\\s]*)?)(?![\\s\\S])"
### revision
Type: string; required in containing object
Immutable catalog revision. The moving label latest is rejected.
minLength: 1
### revision/constraint-1
Type: value
pattern: "\\S"
### revision/constraint-2
Type: value
pattern: "^(?![ \\t\\r\\n]*[Ll][Aa][Tt][Ee][Ss][Tt][ \\t\\r\\n]*$)[\\s\\S]+$"
### document
Type: object; required in containing object
Exact catalog snapshot: its document ID, schema ID and retained-byte digest.
Extra fields: Not allowed in this object
### document.documentId
Type: string; required in containing object
ID inside the exact retained document.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### document.schemaId
Type: string; required in containing object
Exact schema identifier for the referenced document, including its version.
minLength: 1
pattern: "\\S"
### document.sha256
Type: string; required in containing object
SHA-256 of the retained UTF-8 bytes. Reserializing JSON can change this digest.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### termId
Type: string; required in containing object
Exact term ID in the referenced catalog. A display label or short code is not a substitute.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
## Claim connections
Published in npm 2.0.0-beta.4. Each contract retains its own schema version.
Connect terms to claims with an explicit relationship, assignment author, time and rationale.
Schema: urn:disclosureos:experimental:vocabulary-bindings:0.1.0
Export: @disclosureos/records/experimental/v2/vocabulary-bindings/schema/0.1.0
### kind
Type: string; required in containing object
Identifies a vocabulary bindings document.
const: "vocabulary_bindings"
### schemaVersion
Type: string; required in containing object
The bindings contract version.
const: "0.1.0"
### id
Type: string; required in containing object
ID of this companion document.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### bindings
Type: list of object; required in containing object
Nonempty list of attributed connections. These remain separate from the history's subjects and supporting inputs.
minItems: 1
### bindings[]
Type: object
Extra fields: Not allowed in this object
### bindings[].id
Type: string; required in containing object
Unique identifier for this connection within the document.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### bindings[].recordedAt
Type: string; required in containing object
When the connection was recorded. It cannot precede the target claim's recorded time.
### bindings[].recordedAt/constraint-1
Type: value
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
### bindings[].recordedAt/constraint-2
Type: value
pattern: "^(?!0000)"
### bindings[].recordedAt/constraint-3
Type: value
pattern: "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
### bindings[].recordedAt/constraint-4
Type: value
pattern: "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
### bindings[].assignedBy
Type: string; required in containing object
Who assigned the term. For assessment_criterion this must equal the assessed claim's evaluatedBy.
minLength: 1
pattern: "\\S"
### bindings[].rationale
Type: string; required in containing object
Why this term and relationship were selected.
minLength: 1
pattern: "\\S"
### bindings[].claim
Type: object; required in containing object
Target claim and the exact history snapshot containing it.
Extra fields: Not allowed in this object
### bindings[].claim.document
Type: object; required in containing object
Retained claim-history snapshot, distinct from the catalog snapshot.
Extra fields: Not allowed in this object
### bindings[].claim.document.documentId
Type: string; required in containing object
ID inside the exact retained document.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### bindings[].claim.document.schemaId
Type: string; required in containing object
Exact schema identifier for the referenced document, including its version.
minLength: 1
pattern: "\\S"
### bindings[].claim.document.sha256
Type: string; required in containing object
SHA-256 of the retained UTF-8 bytes. Reserializing JSON can change this digest.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### bindings[].claim.claimId
Type: string; required in containing object
ID of the claim in that history. The claim's free-text topic does not establish catalog membership.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### bindings[].relation
Type: string; required in containing object
about indexes a related question. assessment_criterion declares the exact term assessed; it requires an assessed claim and matching evaluator attribution.
enum: ["about","assessment_criterion"]
### bindings[].term
Type: object; required in containing object
Exact vocabulary reference, separate from what the claim is about and the inputs supporting it.
Extra fields: Not allowed in this object
### bindings[].term.catalogId
Type: string; required in containing object
Authority-qualified identity of the vocabulary. This is an identifier, not a URL the evaluator fetches.
pattern: "^(?:urn:[A-Za-z0-9][A-Za-z0-9-]*:[^\\s]+|https:\\/\\/[^\\s/?#]+(?:\\/[^\\s]*)?)(?![\\s\\S])"
### bindings[].term.revision
Type: string; required in containing object
Immutable catalog revision. The moving label latest is rejected.
### bindings[].term.revision/constraint-1
Type: string
minLength: 1
pattern: "\\S"
### bindings[].term.revision/constraint-2
Type: value
### bindings[].term.revision/constraint-2/constraint-1
Type: value
pattern: "\\S"
### bindings[].term.revision/constraint-2/constraint-2
Type: value
pattern: "^(?![ \\t\\r\\n]*[Ll][Aa][Tt][Ee][Ss][Tt][ \\t\\r\\n]*$)[\\s\\S]+$"
### bindings[].term.document
Type: object; required in containing object
Exact catalog snapshot: its document ID, schema ID and retained-byte digest.
Extra fields: Not allowed in this object
### bindings[].term.document.documentId
Type: string; required in containing object
ID inside the exact retained document.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
### bindings[].term.document.schemaId
Type: string; required in containing object
Exact schema identifier for the referenced document, including its version.
minLength: 1
pattern: "\\S"
### bindings[].term.document.sha256
Type: string; required in containing object
SHA-256 of the retained UTF-8 bytes. Reserializing JSON can change this digest.
pattern: "^[a-f0-9]{64}(?![\\s\\S])"
### bindings[].term.termId
Type: string; required in containing object
Exact term ID in the referenced catalog. A display label or short code is not a substitute.
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"